SCHNEIDER Unity Pro XL: Zeiger auf Ein-/Ausgangsbereich an DFB übergeben

MSchaffrath

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte den Ein- /Ausgangsbereich (12 WORD IN // 2 WORD OUT) eines Profibus-Teilnehmers an einen DFB übergeben.
Einzelne EIngangswörter kann ich ohne probleme Adressieren. Arrays die aus dem MW-Bereich stammen ebenfalls.

Will ich jedoch ein Array ab zB %iw0.2.0.1 an meinem DFB legen (Eingangsdefinition array[0..11] OF WORD), bekomme ich beim kompilieren die Meldung "Topologietyp ist inkompatibel".

Wie mache ich es richtig?

Grüße Mark
 
Zuletzt bearbeitet:
Ich habe SyCon gerade nicht verfügbar aber
ist ja kein Array sondern nur ein Wort.

Wenn du deine Eingänge nicht als Array of Word definieren kannst, musst du sie im Programm per Move händich zuweisen.

Versuche morgen mal die Software zu finden und melde mich nochmal.
Holger
 
Wenn du deine Eingänge nicht als Array of Word definieren kannst, musst du sie im Programm per Move händich zuweisen.
Habe ich gemacht (per Operate), aber so richtig toll ist das nicht.

Ich habe SyCon gerade nicht verfügbar aber
%iw0.2.0.1



ist ja kein Array sondern nur ein Wort
Auch bei Modulen, die kosistent aneinader hägen geht das leider nicht.

@Holger: Danke für's prüfen.
 
%iw ein Zeichen für ein Analogeingan
Auch. Oder einen WORD-bassierten Datenaustausch.

hat das was mit der Schnittstelle zu tun, da dort eine Ziffer mehr steht
So werden alle meine Gräte auf dem Profibus dargestellt.
Wenn dort ein Fehler ist kann ich ihn nicht entdecken, bzw. er müsste schon von den GSD-Dateien her rühren.
SysCon baut das so zusammen.

Das ich dort irgendwo einen Fehler mache kann ich aber letztlich nicht ausschließen.
 
Du machst schon alles richtig mit dem PROFIBUS.

Du müsstest tatsächlich mit einem MOVE Baustein arbeiten bevor Du die Daten an den DFB übergibst. Es sei denn Du kannst den DFB umschreiben, bzw. baust nochmal einen "Wrapper" um den DFB der dir die Konvertierung macht (also einen DFB der deinen DFB aufruft aber vorher konvertiert/moved).
Du kannst kein Array direkt auf die %IW Adressen der PROFIBUS Teilnehmer legen, weil das Format ein bisschen anders ist (Kanalnummer ist noch in der %IW Adresse an der dritten Stelle eincodiert)

Du müsstest also so etwas hier vorher machen:
Move Array.PNG
Mit den Datentypen wirst Du wahrscheinlich noch Probleme bekommen. Unity legt für die PROFIBUS Teilnehmer immer INT Werte an. Du schreibst, dein DFB braucht WORD. Da müsstest Du im Zweifelsfall auch nochmal konvertieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

Du müsstest tatsächlich mit einem MOVE Baustein arbeiten
ich habe zwischenzeitlich einen Baustein, der mir die gewünschen Profibus-Daten in ein passendes Array kopiert.
"iDP_RFID[0]:=%iw0.2.0.200;
iDP_RFID[1]:=%iw0.2.0.201;"
usw.

PROFIBUS Teilnehmer legen, weil das Format ein bisschen anders ist (Kanalnummer ist noch in der %IW Adresse an der dritten Stelle...
Ja, da hast Du recht. Ich habe zwischenzeitlich das Profibus-Handbuch zum Unity-System gelesen.

Unity legt für die PROFIBUS Teilnehmer immer INT Werte an. Du schreibst, dein DFB braucht WORD
Ja, ich habe meinen WORD-Fehler bereits korigiert und den DFB angepasst.


Richtig toll ist das noch nicht, aber funktionell.
Aber vieleicht hat ja noch eine ne Idee.
 
Zurück
Oben