Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 3 von 8 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 71

Thema: MC7-Code in AWL umzuwandeln

  1. #21
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Human Beitrag anzeigen
    So eine einfache 3 Funktionen wie Upload-Funktionen, das sieht irgendwie kompliziert aus?
    Damit ich den obenstehenden Satz zu verstehe, solltest du ihn neu formulieren. Damit ich seinen Sinn erraten könnte, soltest du meine vorige Frage beantworten: 'Da mußt du mir erstmal sagen, welche Richtung du mit "upload" meinst?'
    Der kompliziertere Vorgang ist der zum Laden eines Bausteins in die CPU.
    Das geschieht in etwa so:
    1 PG sagt der CPU, daß es einen bestimmten Baustein in die CPU laden will.
    2 CPU fordert Bausteindaten vom PG an.
    3 PG sendet soviel Daten, wie in eine PDU passen und sagt, ob mehr folgen.
    4 Wenn ja, weiter bei 2
    5 Nun existiert der neue Baustein im Speicher der CPU. Vermutlich wird er aber noch noicht ausgeführt.
    6 PG schickt den request mit dem Wort "INSERT". Vermutlich wird daraufhin der alte durch den neuen Baustein ersetzt.

    Beachte, daß zwischen 1 und 2 die CPU sozusagen die Rolle des Initiators für den weiteren Dialog übernimmt.

  2. Folgende 2 Benutzer sagen Danke zu Zottel für den nützlichen Beitrag:

    Human (29.05.2009),Thomas_v2.1 (20.06.2009)

  3. #22
    SPS_PC ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.05.2009
    Beiträge
    18
    Danke
    1
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Hi Human,

    die Netzwerkaufteilung steht meiner Meinung nach am Bausteinende
    nach HexCode 55, gefolgt von der Anzahl der Netzwerke
    erst Low dann Highbyte. Die folgenden Bytes geben die Länge des Netzwerks an. Auch wieder Low- dann Highbyte.

    Nicht wundern wenn nur ein paar Einträge möglich sind.
    Wenn mehr Netzwerke angelegt werden vergrösser sich das Feld.
    Beim Löschen von Netzwerken wird das Feld aber nicht mehr verkleinert.


    Beispiel

    055 Kennung
    002 Anzahl NW's Low => 2 NW's
    000 Anzahl NW's High
    004 Länge 1. NW Low
    000 Länge 1. NW High
    006 Länge 2. NW Low
    000 Länge 2. NW High

  4. Folgender Benutzer sagt Danke zu SPS_PC für den nützlichen Beitrag:

    Human (29.05.2009)

  5. #23
    Registriert seit
    01.03.2007
    Beiträge
    262
    Danke
    26
    Erhielt 33 Danke für 28 Beiträge

    Standard

    Sodele und ich hab mal ein bisschen was an der Snittstellensuche gemacht, bei den OBs, FCs und SFCs funktioniert das schon.

    Was jetzt noch nicht funktioniert ist wenn ein Befehl auf die Ret_Val-, In-, Out-, In_Out-Parameter zugreift, dann ist die Zeile noch leer, weil ich das über einen ganz anderen Speicherbereich geht, der über die Schnittstelle herausgelesen werden muss, ein bisschen komisch, die Netzwerke kommen in den nächsten Tagen auch noch, was mir noch ein bisschen Sorgen macht ist wo die Schnittstellenlänge bei den FBs und SFBs stehen, das ist irgendwie anders als bei den OBs, FCs und SFCs oder ich muss die Bytes dann drehen, bin noch da dran, wenn ich das habe dann sag ich auch wie das dann ganz funktioniert.

    Im Anhang mal die aktuelle Version, meiner MC7-Doku, es sind die UC- und CC-Befehle noch hinzugekommen, wie auch die indirekte Addressierung und die Pointerbefehle (sind auch schon im Programm drin)... wegen dem CALL-Befehl bin ich noch nicht wirklich weiter gekommen, der ist echt zu hart...

    Und das mit dem Netzwerken fehlt mir auch noch ein wenig und DBs sind auch noch nicht die Stärke des Programms...
    Geändert von Human (05.06.2009 um 09:00 Uhr)

  6. #24
    SPS_PC ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.05.2009
    Beiträge
    18
    Danke
    1
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Hi Human

    was fehlt dir denn genau mit bei den Netzwerken?
    War mein Beispiel nicht Aussagekräftig genug?

  7. #25
    Registriert seit
    01.03.2007
    Beiträge
    262
    Danke
    26
    Erhielt 33 Danke für 28 Beiträge

    Standard

    @SPS_PC
    Das Beispiel ist super, aber das fängt ja auch nicht einfach so mal an weils lustig ist, sondern da kommen ja zuerst die Ganzen Schnittstellensachen und dann die Eigenschaften (Name, Familie usw.) und dann kommen ja die Netzwerke und das muss man ja auch irgendwie rauskriegen (hier mal ein Längenangabe, dann mal eine fest definierte Länge usw...), ich glaub ich hab heute abend mal wieder eine ruhige Minute in der ich das mal wieder ein bisschen näher an mich ranführen kann...
    und dann sollte ich das auch noch für die anderen Verbindungstypen zuganglich machen... wer hat außer mir schone eine Ethernat-Spiel-CPU rumstehen?

  8. #26
    Registriert seit
    01.03.2007
    Beiträge
    262
    Danke
    26
    Erhielt 33 Danke für 28 Beiträge

    Standard

    Sodele, hab mal wieder ein bisschen Zeit gefunden und hab meine Schnittstellensuche beendet und hab dann auch gleich noch eine seperate Anzeige für Datenbausteine eingabaut, die allerdings noch nicht ganz fertig ist.

    Wie die Schnittstellenbeschreibung aufgebaut ist und DBs usw. schreib ich demnächst auch mal auf und meine Quellen stell ich dann auch mal rein, aber kann ich so noch nicht!
    Geändert von Human (07.06.2009 um 23:17 Uhr)

  9. #27
    Registriert seit
    01.03.2007
    Beiträge
    262
    Danke
    26
    Erhielt 33 Danke für 28 Beiträge

    Standard

    Und schon wieder ist ein wunderschönes Wochenende vorbei und ich war nicht ganz untätig.

    Es sind noch ein paar Bausteinangaben dazugekommen wie Autor, Famile, Name, Version, uvm., die Addressierung der Datenbausteine müsste jetzt stimmen und die Aktualwerte der Datenbausteine werden auch noch angezeigt.

    An dieser Stelle möchte ich mich dann auch mal an der Mithilfe von Rainer Hönle bedanken, der mir mit der einen Seite aus seinen privaten Archiven sehr sehr weitergeholfen hat (die Seite wird noch eingerahmt )!

    Dann möchte ich mich noch bei Zottel bedanken, der mir bisher immer mit seinem Rat zur Seite stand.


    Dann werde ich auch gerade hin und wieder auf die Ziele meiner Arbeit gefragt.
    Ich mache das was ich mache einfach so just for fun! Ich beabsichtige nicht eine neue Super-Programmiersoftware a la Step7 zu kreieren und das sowieso nicht aus verschieden Gründen:
    1. Würde das wahrscheinlich keine Sau nutzen (nichtmal ich!!!),
    2. Hab ich dazu keine Zeit, Siemens hat das ja auch nicht über Nacht gemacht und ich hab auch keine anderen Programmierer.
    3. Eigentlich will ich damit nur meine Kollegen die lieben SPS-Programmierer ein bisschen überwachen können, die immer behaupten: "Jaja, ich hab alles richtig, bei mir tut das!", ohne dass ich immer mein Step7-Laptop mitschleifen muss.

    Und dann noch was zum Anhang:

    Ich würde mich sehr über ein Feedback freuen!!!
    Geändert von Human (14.06.2009 um 03:58 Uhr)

  10. #28
    SPS_PC ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.05.2009
    Beiträge
    18
    Danke
    1
    Erhielt 2 Danke für 2 Beiträge

    Standard

    ich habe endlich auch ein bisschen Zeit gefunden und weiter
    am MC7-Code geforscht. Das Ergebnis sieht wie folgt aus

    ++++++++++++++ Übergabeparameter +++++++++++++++++++++++++
    Bsp.: 1
    ...... // MC7-Code
    0x 65, 0x 00, // MC7-Code Bausteinende
    0x 01, // ??
    0x 01, 0x 00, // Bausteinnummer low+high hier 1
    0x 00, 0x 00, // Länge der Parameter low+high in Byte hier 0
    0x 00, 0x 00, // ??
    0x vv, // ??
    0x 02, 0x 00, // Anzahl Netzwerke low+high
    0x 08, 0x 00, // Länge NW 1
    0x 0C, 0x 00, // Länge NW 2


    Bsp.: 2
    ...... // MC7-Code
    0x 65, 0x 00, // MC7-Code Bausteinende
    0x 01, // ??
    0x 0A, 0x 00, // Bausteinnummer low+high hier 10
    0x 04, 0x 00, // Länge der Parameter in Byte hier 4
    0x 00, 0x 00, // ??

    0x bb, 0x cc, // 1. Parameter
    0x 02, 0x 01, // 2. Parameter
    0x vv // ??
    0x 02, 0x 00, // Anzahl Netzwerke low+high
    0x 08, 0x 00, // Länge NW 1
    0x 0C, 0x 00, // Länge NW 2
    .....

    // ----------- Beschreibung ---------------------
    bb = Datentyp des Parameters
    01 = Bool
    02 = Byte
    03 = Char
    04 = Word
    05 = Int
    06 = DWord
    07 = DInt
    08 = Real
    09 = Date
    0A = Time of Date
    0B = Time
    0C = S5Time
    0D =
    0E = Date_And_Time
    0F =
    10 = Array z.B 10 02 02 = out
    .....................01 = ?? Beginn der Deklaration
    .....................14 = low Byte Startwert
    .....................00 = high Byte Startwert Array hier 20
    .....................19 = low Byte Endwert Array
    .....................00 = high Byte Endwert hier 25
    .....................05 = DatenTyp des Arrays hier Int
    .....................02 = ?? Ende der Deklaration
    11 = UDT z.B 11 01 01 = in
    ...................02 = Anzahl der Deklarationen
    ...................04 02 = Word out
    ...................01 02 = Bool out
    13 = String z.B 13 01
    .....................FE
    14 = Pointer
    15 =
    16 = Any
    FE = String

    cc = Typ des Parameters
    01 = in
    02 = out
    03 = in_out
    04 = stat
    05 = temp
    06 = Ret_Val

    vv = ??????



    __________________________________________________________
    +++++++++++++++++++ Autor Familie usw... +++++++++++++++++
    0x 2, 0x 0, 0x 8, 0x 0, 0x C, 0x 0, // NW Angaben dieser Bereich
    ist in der Länge variabel
    0x 0, 0x 0, 0x C, 0x 0, 0x C, 0x 0, 0x 0, 0x 0,
    0x F, 0x 0,
    0x4A, 0x41, 0x4A, 0x41, 0x4A, 0x41, 0x4A, 0x41, // Autor
    0x54, 0x65, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, // Familie
    0x42, 0x41, 0x55, 0x42, 0x41, 0x55, 0x42, 0x41, // Name
    0x67, // Version 6.7
    0x 0, 0xC5, 0xE3, 0x 0, 0x 0, 0x 0, 0x 0, 0x 0, 0x 0, 0x 0, 0x 0,


    Human hätte ich dein Tool eher gesehen, hätte ich mir viel Arbeit sparen
    können. Dein Tool ist echt gut. Nur bei dem Übergabeparameter "string"
    stimmt was nicht. Vielleicht kannst du ja mal deine Erkenntnisse mit meinen vergleichen.
    Geändert von SPS_PC (11.06.2009 um 20:09 Uhr)

  11. Folgender Benutzer sagt Danke zu SPS_PC für den nützlichen Beitrag:

    Human (12.06.2009)

  12. #29
    Registriert seit
    01.03.2007
    Beiträge
    262
    Danke
    26
    Erhielt 33 Danke für 28 Beiträge

    Standard

    11 = UDT
    Naja, kann UDT sein, aber eigentlich ist es STRUCT, lade mal deinen Baustein in die CPU und lade ihn wieder in ein anderes Projekt zurück, dann kommt ein STRUCT raus mit dem was im UDT drinstand!

    Human hätte ich dein Tool eher gesehen, hätte ich mir viel Arbeit sparen
    können. Dein Tool ist echt gut. Nur bei dem Übergabeparameter "string"
    stimmt was nicht. Vielleicht kannst du ja mal deine Erkenntnisse mit meinen vergleichen.
    Endlich mal ein Feedback, ich danke dir!
    Den String hatte ich irgendwie vergessen... mach ich jetzt mal rein...
    Geändert von Human (12.06.2009 um 01:47 Uhr)

  13. #30
    Registriert seit
    01.03.2007
    Beiträge
    262
    Danke
    26
    Erhielt 33 Danke für 28 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Du hast den Spaß mit den Startwerten vergessen:

    cc = Typ des Parameters
    01 = in
    02 = out
    03 = in_out
    04 = stat
    05 = temp
    06 = Ret_Val
    09 = in mit Startwert
    0A = out mit Startwert
    0B = in_out mit Startwert
    0C = stat mit Startwert

    0x 04, 0x 00, // Länge der Parameter in Byte hier 4
    0x 00, 0x 00, // ??
    ?? = Länge der Startwerte auch in Byte

Ähnliche Themen

  1. C++ Code
    Von rabit im Forum Hochsprachen - OPC
    Antworten: 9
    Letzter Beitrag: 03.01.2010, 10:42
  2. SCL code
    Von awl-scl im Forum Simatic
    Antworten: 21
    Letzter Beitrag: 14.01.2008, 17:02
  3. Code erklären
    Von ottopaul im Forum HMI
    Antworten: 1
    Letzter Beitrag: 04.04.2007, 15:28
  4. AWL-code
    Von Anonymous im Forum Simatic
    Antworten: 29
    Letzter Beitrag: 09.11.2005, 16:48
  5. SMD Code Tabelle
    Von Josef Scholz im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 23.06.2003, 20:53

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •