- Beiträge
- 5.442
- Reaktionspunkte
- 1.412
-> Hier kostenlos registrieren
Hallo zusammen. Ich bau mir grad eine Kommunikation für ModbusTCP auf.
Von Siemens habe ich den treiber der wird so aufgerufen.
Also einmal Zyklisch in einem FB mit einem Instanzdb
Und einmalig im OB100 beim aufstart mit demselben Instanzdb
Jetzt würde ich den Baustein gerne als Multiinstanz im FB aufrufen. Kriege ich das irgendwie hin das ich ihn im OB100 so aufrufe das er in denselben Muliinstanzabschnitt eingreift wie der im FB?
Ich habe schon versucht den übergeordneten FB so zu bauen das ich ihn aus dem OB100 aufrufen kann und ihm dann
ID :="CONTROL_DAT".MOD2.ID
DB_PARAM :="MODBUS_PARAM"
einmalig übergebe. Allerdings läuft dann der Treiber nicht und sagt er müsse initialisiert werden. Irgendwie kriegt der das also mit das der FB nicht direkt im OB100 aufgerufen wurde sondern in einem FB der vom OB100 aufgerufen wird.
mfg René
Von Siemens habe ich den treiber der wird so aufgerufen.
Code:
CALL "MODBUSPN" , DB1001
ID :=
DB_PARAM :=
RECV_TIME :="CONTROL_DAT".MOD1.RECV_TIME
CONN_TIME :="CONTROL_DAT".MOD1.CONN_TIME
KEEP_ALIVE :=
ENQ_ENR :="CONTROL_DAT".MOD1.ENQ_ENR
DISCONNECT :="CONTROL_DAT".MOD1.DISCONNECT
REG_KEY :="LICENSE_DB".REG_KEY
LICENSED :="CONTROL_DAT".MOD1.LICENSED
BUSY :="CONTROL_DAT".MOD1.BUSY
CONN_ESTABLISHED:="CONTROL_DAT".MOD1.CONN_ESTABLISHED
DONE_NDR :="CONTROL_DAT".MOD1.DONE_NDR
ERROR :="CONTROL_DAT".MOD1.ERROR
STATUS_MODBUS :="CONTROL_DAT".MOD1.STATUS_MODBUS
STATUS_CONN :="CONTROL_DAT".MOD1.STATUS_CONN
STATUS_FUNC :="CONTROL_DAT".MOD1.STATUS_FUNC
IDENT_CODE :="CONTROL_DAT".MOD1.IDENT_CODE
UNIT :="CONTROL_DAT".MOD1.UNIT
DATA_TYPE :="CONTROL_DAT".MOD1.DATA_TYPE
START_ADDRESS :="CONTROL_DAT".MOD1.START_ADDRESS
LENGTH :="CONTROL_DAT".MOD1.LENGTH
TI :="CONTROL_DAT".MOD1.TI
WRITE_READ :="CONTROL_DAT".MOD1.WRITE_READ
Und einmalig im OB100 beim aufstart mit demselben Instanzdb
Code:
L 1
T "CONTROL_DAT".MOD1.ID
CALL "MODBUSPN" , DB1001
ID :="CONTROL_DAT".MOD1.ID
DB_PARAM :="MODBUS_PARAM"
RECV_TIME :=
CONN_TIME :=
KEEP_ALIVE :=
ENQ_ENR :=
DISCONNECT :=
REG_KEY :=
LICENSED :=
BUSY :="CONTROL_DAT".MOD1.BUSY
CONN_ESTABLISHED:="CONTROL_DAT".MOD1.CONN_ESTABLISHED
DONE_NDR :="CONTROL_DAT".MOD1.DONE_NDR
ERROR :="CONTROL_DAT".MOD1.ERROR
STATUS_MODBUS :="CONTROL_DAT".MOD1.STATUS_MODBUS
STATUS_CONN :="CONTROL_DAT".MOD1.STATUS_CONN
STATUS_FUNC :="CONTROL_DAT".MOD1.STATUS_FUNC
IDENT_CODE :=
UNIT :=
DATA_TYPE :=
START_ADDRESS :=
LENGTH :=
TI :=
WRITE_READ :=
Ich habe schon versucht den übergeordneten FB so zu bauen das ich ihn aus dem OB100 aufrufen kann und ihm dann
ID :="CONTROL_DAT".MOD2.ID
DB_PARAM :="MODBUS_PARAM"
einmalig übergebe. Allerdings läuft dann der Treiber nicht und sagt er müsse initialisiert werden. Irgendwie kriegt der das also mit das der FB nicht direkt im OB100 aufgerufen wurde sondern in einem FB der vom OB100 aufgerufen wird.
mfg René