PS416 Adressen

EyeQ

Level-1
Beiträge
140
Reaktionspunkte
13
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo nochmal,

mich verwirrt gerade etwas. Ich schreibe grad ein Programm für eine Moeller PS416-400. Noch nie wirklich gemacht und muss alles wie immer ganz schnell gehen.
Mein Problem: Ich habe irgendwie in erinnerung, dass die Ein-/Ausgangsadressen wortweise Bitadressiert werden. Also I0.0..I0.15 usw., auch die Adressvergabe in meinem Schaltplan folgt diesem Schema. Nun habe ich die Variablen automatisch aus der Hardwaretopologie anlegen lassen und diese sind komischerweise (wie bei Siemens ;>) mit I0.0..I0.7, I1.0..I1.7 usw. angelegt worden. I0.8 ergibt auch einen Syntaxerror. Nun habe ich Angst, dass ich irgendwas Grundsätzlich falsch gemacht habe.

Wie gesagt, ich arbeite an einer PS416-400 mit Sucosoft S40 V5.06.
 
Hallo,

%IW0 = I0.0. -.I0.15

Siemens EW0 = EB0+EB1 = E0.0-E0.7 , E1.0-E1.7

Soll heißen,

E0.0-0.7 entspricht I0.0-I0.7
E1.0-1.7 entspricht I0.8-I0.15

Low/High byte beachten
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

%IW0 = I0.0. -.I0.15


Low/High byte beachten

Bin da der gleichen Meinung. Warum aber macht Sucosoft mir einen Syntaxerror, wenn ich die Adresse I0.8 einer Variable zuweisen will. Und warum legt Sucosoft mir die Adressen von 0.0 bis 0.7 an und macht dann bei 1.0 weiter.
Im Anhang mal nen Screenshot meiner Variablendeklaration. Die Adresse I0.8 habe ich mal bewusst so gemacht um euch die Fehlermeldung zu zeigen. eigentlich steht da I0.7


edit: btw. in der Harwarekonfiguration kann ich für die EA Karten auch nur gerade Adressen vergeben (0,2,4..)
 

Anhänge

  • Moeller_Adressen.jpg
    Moeller_Adressen.jpg
    155 KB · Aufrufe: 17
Zuletzt bearbeitet:
Danke für deine Mühe, aber das macht mich nicht sicherer :confused:.

Natürlich habe ich die Adressen umgerechnet, ist ja kein Problem. Mich wunderts halt, dass im Schaltplan die Adressbits immer von 0-15 gehen.
Gibt es denn noch andere Software um eine PS416 zu programmieren? Auf der Moeller Website gab es nur Socusoft und das hatten wir halt auch da.


PS: Hat jemand ein Handbuch für eine PS416-CNT-200 zu verschenken? Finde da irgendwie nichts.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Adressbits sind im Schaltplan von 0 bis 15, weil die Baugruppenstecker so beschriftet sind.
Die Digital-Ein-/Ausgänge werden aber byteweise adressiert, die Bitadresse ist .0 bis .7
In Sucosoft S40 V3.1 mußte man die E/A-Adressen im Basisbaugruppenträger so schreiben
(Strang_0.Teilnehmer_0.Rack_0):
Code:
VAR_GLOBAL
	Eingang0 AT %I0.0.0.2.0 : BOOL ;
	Eingang1 AT %I0.0.0.2.1 : BOOL ;
...
	Eingang7 AT %I0.0.0.2.7 : BOOL ;
	Eingang8 AT %I0.0.0.3.0 : BOOL ;
	Eingang9 AT %I0.0.0.3.1 : BOOL ;

	Ausgang0 AT %Q0.0.0.4.0 : BOOL ;
...
END_VAR
siehe auch
AWB27-1239 Hardware und Projektierung Digital-Ein-/-Ausgabebaugruppen
AWB2700-1306 Sucosoft S40 Sprachelemente für PS4-150/-200/-300 und PS416
Mit Sucosoft S40 V5.x habe ich noch nicht gearbeitet, sollte aber ähnlich sein.

Für PS416-CNT-200 kenne ich nur die Aufstellanweisung AWA27-1408.
Die enthält fast nur die Steckerbelegung. Benutzt habe ich die Karte noch nicht.

Harald
 
Danke Harald. Das beruhigt mein Gewissen schon mal etwas :).

Also die AWA habe ich auch schon gefunden aber mehr scheint es dazu nicht zu geben. Ich denke mal es gibt infos dazu in irgendeinem andern PDF. Naja muss ich wohl weiter lesen.
Vielleicht finde ich ja irgendwo Programmierbeispiele. Wenn noch jemand nen Tip hat... bin über alle Infos dankbar, da die Zeit echt drängt (glücklicherweise nicht meine Schuld :ROFLMAO: )
 
Vorbemerkung: wir haben mit der Version 4 aufgehört. Aus dieser Perspektive:

Zuerst: Was steht in deiner Topologie? Dort kannst du jeder Karte eine Byteadresse zuordnen. Bei 16 Bit musst du dann zur nächsten Karte zwei hochzählen, geht aber getrennt für Input- und Output-karten.

Sehr ähnlich wie bei PNDP, aber im Grunde ab 0 und getrennt für Ausgang und Eingang.

Wie viele Karten von welchem Typ hast du denn?

Nachtrag: dein Screenshot sieht erst 'mal ganz vernünftig aus, bis auf die 0.8 , das muss 0.7 sein, dann kommt 1.0.

Nachtrag 2: Die Zählerbaugruppen werden in der Sucosoft über herstellereigene FBs direkt angesprochen.
Beim Aufruf einer Instanz gibt du dort die Slotadresse (Topologie!) und eine Maske ein. Der FB schreibt beim Aufruf direkt in ein vordefiniertes Array, siehe "ReadCounterDirect" im 1306 von oben (Software - Sprachelemente)
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke Ludewig. Mit den Adressen bin ich nun soweit zufrieden. Ich denke das passt so. Also ich habe 3 16bit Eingangskarten und 3 16bit Ausgangskarten. Als Adressen haben ich 0,2 und 4 vergeben. Die Zählerkarte heist PS416-CNT-200 mein ich, aber ich glaube es gibt nur die eine.

Die ganzen Handbücher die ich geladen habe, hab ich noch nicht durch, danke für den Tipp. Das werde ich mir morgen als erstes durchlesen. Slotadresse krieg ich raus, da konnte man nicht wirklich was einstellen. Die Karte hat mehrere Kanäle aber ich werds erstmal lesen bevor ich noch mehr Fragen stelle.

Nachtrag: dein Screenshot sieht erst 'mal ganz vernünftig aus, bis auf die 0.8 , das muss 0.7 sein, dann kommt 1.0.

Ja, wie gesagt, das habe ich absichtlich gemacht, um die Fehlermeldung zu zeigen :rolleyes:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hehe, besten Dank, ich sollte meinem Chef sagen, dass er euch bisschen was abdrücken soll ^^.

Hier kommt gleich die nächste Frage: Die maximale Anzahl der Inkremente bestimmt doch die Zählerkarte. Der "ReadDirectCounter" speichert diese als UINT als 16bit -> Max Inkremente = 65535. Sehe ich das richtig?

Dazu kommt noch, wertet die Karte auch die Drehrichtung aus? Ich wüsste sonst nicht, wie ich diese bestimmen kann außer über meinen gesezten Ausgang für den Antrieb. Und das ist mir zu unsicher.

Wäre alles halb so wild, wenn ich es doch nur ausprobieren könnte. Kann man die PS416 irgendwie simulieren um zumindest zu sehen wie sie sich mit meinem Programm verhält ?
 
Zurück
Oben