Автор: Sakhalin_cat
Дата: 18.04.20 15:05
Помогите пожалуйста. Уже третью неделю сижу не могу разобраться с BC9000. Как увидеть входы и выходы по модбасTCP. Уже весь интернет перерыл ничего не получается.
Если модули отдаю только PLC то я не вижу их через модбас. Если отдаю FieldBus то по модбас вижу, а в ПЛК нет. Мне надо видеть модули и там и там, чтобы работала программа на BC9000 и функционировала SCADA система.
В документации описано совершенно непонятно как всё это совместить. Дайте пожалуйста пример кода на основании моей программы, чтобы было от чего оттолкнуться.
Простейшая программка две кнопки + два триггера + 2 реле.
PROGRAM MAIN
VAR_INPUT
LIGHT_SWITCH_1 AT%IX0.0:BOOL; (*Light switch #1*)
LIGHT_SWITCH_2 AT%IX0.1:BOOL; (*Light switch #2*)
END_VAR
VAR_OUTPUT
LIGHT_RELAY_1 AT%QX0.0:BOOL := 0; (*Light relay #1*)
LIGHT_RELAY_2 AT%QX0.1:BOOL := 0; (*Light relay #2*)
END_VAR
VAR
LIGHT_TRIGGER_STATUS_1 AT%MX0.1:BOOL:=0; (*Trigger for light #1, status*)
LIGHT_TRIGGER_OUT_1 AT%MX0.2:BOOL:=0; (*Trigger for light #1, output*)
LIGHT_TRIGGER_STATUS_2 AT%MX0.3:BOOL:=0; (*Trigger for light #2, status*)
LIGHT_TRIGGER_OUT_2 AT%MX0.4:BOOL:=0; (*Trigger for light #2, output*)
END_VAR
(*Trigger for light #1*)
LIGHT_TRIGGER_OUT_1 := LIGHT_SWITCH_1 AND NOT LIGHT_TRIGGER_STATUS_1;
LIGHT_TRIGGER_STATUS_1 := LIGHT_SWITCH_1;
(*Light relay #1 on/off block*)
IF LIGHT_TRIGGER_OUT_1 = 1
THEN LIGHT_RELAY_1 := NOT LIGHT_RELAY_1;
END_IF;
(*Trigger for light #2*)
LIGHT_TRIGGER_OUT_2 := LIGHT_SWITCH_2 AND NOT LIGHT_TRIGGER_STATUS_2;
LIGHT_TRIGGER_STATUS_2 := LIGHT_SWITCH_2;
(*Light relay #2 on/off block*)
IF LIGHT_TRIGGER_OUT_2 = 1
THEN LIGHT_RELAY_2 := NOT LIGHT_RELAY_2;
END_IF;
С уважением, Константин
|
|