Also es gibt wie immer viele Möglichkeiten.
Du kannst natürlich globale DB nutzen.
Du kannst in FC und FB IN- Out- und INOUT-Parameter definieren. Wenn die FC/FB dann aufgerufen werden kannst du an diese Parameter deine zu übergebenden Variablen antragen. So kann dann auch ein FC mehrere Outputs haben, u.a. auch eine Bool, daß der Timer abgelaufen ist.
Du kannst deine zu übergebenden Daten auch zu Strukturen oder als UDT zusammenfassen und diese dann zur Definition als IN/OUT/INOUT nutzen. Wenn du diese Strukturen bzw. UDT dann auch in deinen Globalen DB definierst, brauchst du nicht mehr allzu viele IN/OUT-Parameter in den FC/FB definieren sondern nutzt z.Bsp. eine UDT im globalen DB und je eine UDT in den FC. Die UDT-Var des globalen UDT kannst du dann an Den FC als z.Bsp. INOUT antragen und so alle deine Variablen in den FC hinein und aus ihm herausbekommen. Vorteil, in dem FC/FB gelten weiterhin die im UDT angelegten Variabennamen. Lies dir da mal in der Step7-Hilfe genauer durch, kannst dann auch hier weiterfragen.
PS: Wenn du Timer nutzt, ist es sinnvoll FB zu nutzen (die haben durch ihren Instanz-DB sowas wie lokale statische Variablen) und darin aus der IEC-Library von Step7 die Timer TON/TOFF als Statische Variablen zu deklarieren und zu nutzen. Diese Timer nehmen einen Zeitwert in ms entgegen. Willst du einen FB mehrmals benutzen ist das einfach möglich, indem man jeder FB-Instanz einen eigenen Instanz-DB zuordnet. In diesem Falle ist es eh nicht gut, normale S5-Timer zu nutzen, da diese nur einmal aufgerufen werden dürfen!
Bookmarks