1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Помогите по Beckhoff BC900 пожалуйста

Закрыто

Автор темы
sakhalin_cat
здесь недавно
здесь недавно
Сообщения: 16
Зарегистрирован: 10 мар 2019, 18:33
Имя: Константин
Страна: Россия
город/регион: Южно-Сахалинск
Поблагодарили: 1 раз

Помогите по Beckhoff BC900 пожалуйста

Сообщение sakhalin_cat »

Помогите пожалуйста. Уже третью неделю сижу не могу разобраться с 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;


С уважением, Константин
Закрыто

Вернуться в «Beckhoff»