Народ, прошу подсказать и направить.
Задача: Обработать сигнал с S7-1500 в логике S7-1200.
Два технологических объекта, нужно увязать один от другого.
На одном объекте работает S7-1500, с него нужен сигнал, который будет участовать в логике (S7-1200) другого технологического объекта.
Как правильно организовать передачу этого сигнала по Ethernet.
Шнурок проброшен. Я его втыкаю в коммутатор. А дальше?
Я понимаю, что это работа с тегами и с функциями PUT/GET, а может даже с pointerами.
Но уже подзабыл малость.
Нужно ваше содействие, спасибо заранее.
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Связать S7-1200 с S7-1500
-
- здесь недавно
- Сообщения: 74
- Зарегистрирован: 29 окт 2017, 19:52
- Имя: Дмитрий
- Благодарил (а): 5 раз
- Поблагодарили: 17 раз
Связать S7-1200 с S7-1500
Доброе утро, таких примеров много на просторе интернета. Хотя бы этот: https://www.youtube.com/watch?v=WjC1cYibENI
Напишите в поисковике S71500 and s7-1200 Put get. Вот пример от support siemens:
https://support.industry.siemens.com/dl ... 500_en.pdf
Напишите в поисковике S71500 and s7-1200 Put get. Вот пример от support siemens:
https://support.industry.siemens.com/dl ... 500_en.pdf
-
- освоился
- Сообщения: 281
- Зарегистрирован: 14 фев 2014, 11:55
- Имя: Николай
- Страна: Россия
- Благодарил (а): 9 раз
- Поблагодарили: 64 раза
Связать S7-1200 с S7-1500
Короче, в одном контроллере создаешь DB, с которыми будешь обмениваться инфой, делаешь им неоптимизированный доступ, разрешаешь PUT/GET в настройках обоих ПЛК
Дальше пишешь GET(
визард тут же выдает тебе запрос на создание datablock, создаешь. Он тебе автоматом рисует аргументы для функции, вот так:
"GET_DB"(REQ:=FALSE,
ID:=W#16#0,
NDR=>_bool_out_,
ERROR=>_bool_out_,
STATUS=>_word_out_,
ADDR_1:=_remote_inout_,
ADDR_2:=_remote_inout_,
ADDR_3:=_remote_inout_,
ADDR_4:=_remote_inout_,
RD_1:=_variant_inout_,
RD_2:=_variant_inout_,
RD_3:=_variant_inout_,
RD_4:=_variant_inout_);
Когда курсор ставишь на этот вот "GET_DB", появляется внизу настройка конфигурации его, там надо выбрать второй контроллер. Если второй ПЛК у тебя в другом проекте TIA Portal, то надо просто создать в текущем проекте контроллер-пустышку с нужным IP-адресом, чтобы было, что выбрать. Адреса тоже можно там же задать, где и конфигурация (в разделе Block Parameter), но это - глупостью заниматься, быстрее руками всё, что нужно, просто написать.
прием данных:
"GET_DB"(REQ := "Clock_10Hz",
ID := W#16#100,
ADDR_1 := P#DB80.DBX0.0 Byte 2, // partner
RD_1 := P#DB80.DBX0.0 Byte 2, // local
ERROR => "HMI_DB".PLC2_Communication_Error_1);
тоже самое с отправкой данных:
"PUT_DB"(REQ := "Clock_10Hz",
ADDR_1 := P#DB81.DBX0.0 Byte 2, // partner
SD_1 := P#DB81.DBX0.0 Byte 2, // local
ID := W#16#100,
ERROR => "HMI_DB".PLC2_Communication_Error_2);
хочется сразу из разных мест принимать или отправлять, просто добавляешь аргументы в эти же функции:
"GET_DB"(REQ := "Clock_10Hz",
ID := W#16#100,
ADDR_1 := P#DB80.DBX0.0 Byte 2, // partner
RD_1 := P#DB80.DBX0.0 Byte 2, // local
ADDR_2 := P#DB80.DBX0.0 Byte 2, // partner
RD_2 := P#DB80.DBX0.0 Byte 2, // local
ERROR => "HMI_DB".PLC2_Communication_Error_1);
Вот и вся история
Дальше пишешь GET(
визард тут же выдает тебе запрос на создание datablock, создаешь. Он тебе автоматом рисует аргументы для функции, вот так:
"GET_DB"(REQ:=FALSE,
ID:=W#16#0,
NDR=>_bool_out_,
ERROR=>_bool_out_,
STATUS=>_word_out_,
ADDR_1:=_remote_inout_,
ADDR_2:=_remote_inout_,
ADDR_3:=_remote_inout_,
ADDR_4:=_remote_inout_,
RD_1:=_variant_inout_,
RD_2:=_variant_inout_,
RD_3:=_variant_inout_,
RD_4:=_variant_inout_);
Когда курсор ставишь на этот вот "GET_DB", появляется внизу настройка конфигурации его, там надо выбрать второй контроллер. Если второй ПЛК у тебя в другом проекте TIA Portal, то надо просто создать в текущем проекте контроллер-пустышку с нужным IP-адресом, чтобы было, что выбрать. Адреса тоже можно там же задать, где и конфигурация (в разделе Block Parameter), но это - глупостью заниматься, быстрее руками всё, что нужно, просто написать.
прием данных:
"GET_DB"(REQ := "Clock_10Hz",
ID := W#16#100,
ADDR_1 := P#DB80.DBX0.0 Byte 2, // partner
RD_1 := P#DB80.DBX0.0 Byte 2, // local
ERROR => "HMI_DB".PLC2_Communication_Error_1);
тоже самое с отправкой данных:
"PUT_DB"(REQ := "Clock_10Hz",
ADDR_1 := P#DB81.DBX0.0 Byte 2, // partner
SD_1 := P#DB81.DBX0.0 Byte 2, // local
ID := W#16#100,
ERROR => "HMI_DB".PLC2_Communication_Error_2);
хочется сразу из разных мест принимать или отправлять, просто добавляешь аргументы в эти же функции:
"GET_DB"(REQ := "Clock_10Hz",
ID := W#16#100,
ADDR_1 := P#DB80.DBX0.0 Byte 2, // partner
RD_1 := P#DB80.DBX0.0 Byte 2, // local
ADDR_2 := P#DB80.DBX0.0 Byte 2, // partner
RD_2 := P#DB80.DBX0.0 Byte 2, // local
ERROR => "HMI_DB".PLC2_Communication_Error_1);
Вот и вся история