ich bin neu (fast gar keine CoDeSys-Erfahrung) und hab gleich eine Frage, bei der ich Eure Hilfe brauch.
Ich habe mit MATLAB/ Simulink ein Berechnungsprogramm entwickelt, mit dem Simulink PLC Coder (Mathworks Produkt) dieses in strukturierten Text für CoDeSys umsetzen lassen und möchte die resultierende Datei (.exp-Datei) nun in eine CoDeSys-Umgebung mit anderen Modulen einbinden. Importiert ist es schon, war unproblematisch. Dummerweise erwartet das Modul mit dem MATLAB-Programm als ersten Input ein Signal (ähnlich einem Triggersignal), welches die sogenannte Methode angibt (für den ersten Durchlauf soll der Wert 0 das Programm initialisieren, ab den zweiten Durchlauf erfolgt die Berechnung, wenn das Signal den Wert 3 hat).
Genau an dieser Stelle komme ich nicht weiter, da ich mit CoDeSys wie gesagt auch kaum Erfahrungen habe. Kann mir an dieser Stelle jemand helfen? Ich nehme gern jeden Tipp und jeden Hinweis, Erfahrungsberichte wären super.
Vielen Dank im voraus und beste Grüße,
Sarah
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Moin
Ich würde dir ja gerne helfen, wenn ich wüsste was das Problem ist...
Für mich sieht das so aus, als ob dein Baustein (PRG oder FB oder Funktion ?) eine Input Variable benötigt, die beim 1. Durchlauf 0 ist.
Das dürfte ja nicht das Problem sein, oder ?
Diese Variable nach dem 1. Durchlauf auf 3 zu setzen ist ja auch nicht wirklich schwierig.
Was ist also dein Problem ?
Gruß
Erik
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Nagut, für einen regelmäßigen Nutzer wahrscheinlich ein Kinderspiel, aber da ich noch nicht sehr viel mit CoDeSys gemacht habe, weiß ich nicht recht, wie ich's angehen soll.
Die Logik für diesen benötigten Inputgeber hast du schon ganz richtig dargestellt. Wie kann ich das nun am besten/ elegantesten umsetzen? Einen vordefinierten Block in der Library gibt's dazu ja auch nicht.
Ach so, mein Baustein ist FB.
Vielen Dank und besten Gruß!
Sarah
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
VAR_INPUT
iStartTrigger: INT := 0; ( Variable deklarieren und mit NULL vorbelegen. Setzen auf NULL kann auch von ausserhalb geschehen, mit "FB_Name.iStartTrigger := 0;" )
END_VAR
Rumpf:
if iStartTrigger = 0 then
iStartTrigger := 3;
end_if
Gruß
Erik
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo alle miteinander,
ich bin neu (fast gar keine CoDeSys-Erfahrung) und hab gleich eine Frage, bei der ich Eure Hilfe brauch.
Ich habe mit MATLAB/ Simulink ein Berechnungsprogramm entwickelt, mit dem Simulink PLC Coder (Mathworks Produkt) dieses in strukturierten Text für CoDeSys umsetzen lassen und möchte die resultierende Datei (.exp-Datei) nun in eine CoDeSys-Umgebung mit anderen Modulen einbinden. Importiert ist es schon, war unproblematisch. Dummerweise erwartet das Modul mit dem MATLAB-Programm als ersten Input ein Signal (ähnlich einem Triggersignal), welches die sogenannte Methode angibt (für den ersten Durchlauf soll der Wert 0 das Programm initialisieren, ab den zweiten Durchlauf erfolgt die Berechnung, wenn das Signal den Wert 3 hat).
Genau an dieser Stelle komme ich nicht weiter, da ich mit CoDeSys wie gesagt auch kaum Erfahrungen habe. Kann mir an dieser Stelle jemand helfen? Ich nehme gern jeden Tipp und jeden Hinweis, Erfahrungsberichte wären super.
Vielen Dank im voraus und beste Grüße,
Sarah
Moin
Ich würde dir ja gerne helfen, wenn ich wüsste was das Problem ist...
Für mich sieht das so aus, als ob dein Baustein (PRG oder FB oder Funktion ?) eine Input Variable benötigt, die beim 1. Durchlauf 0 ist.
Das dürfte ja nicht das Problem sein, oder ?
Diese Variable nach dem 1. Durchlauf auf 3 zu setzen ist ja auch nicht wirklich schwierig.
Was ist also dein Problem ?
Gruß
Erik
Nagut, für einen regelmäßigen Nutzer wahrscheinlich ein Kinderspiel, aber da ich noch nicht sehr viel mit CoDeSys gemacht habe, weiß ich nicht recht, wie ich's angehen soll.
Die Logik für diesen benötigten Inputgeber hast du schon ganz richtig dargestellt. Wie kann ich das nun am besten/ elegantesten umsetzen? Einen vordefinierten Block in der Library gibt's dazu ja auch nicht.
Ach so, mein Baustein ist FB.
Vielen Dank und besten Gruß!
Sarah
Servus
Deklarationsteil:
VAR_INPUT
iStartTrigger: INT := 0; ( Variable deklarieren und mit NULL vorbelegen. Setzen auf NULL kann auch von ausserhalb geschehen, mit "FB_Name.iStartTrigger := 0;" )
END_VAR
Rumpf:
if iStartTrigger = 0 then
iStartTrigger := 3;
end_if
Gruß
Erik
Hab vielen Dank, ich werd deinen Vorschlag gleich mal ausprobieren.