igorlov1995
Junior Member / Новичок
Участник № / Member № 9561
отправлено / posted
Здравствуйте. Имеется ПЛК Siemens S5 (CPU 943), который подключается к верхнему уровню с помощью CP 1430 TCP. На верхнем уровне сервер с Windows и WinCC (используется встроенный протокол Simatic S5 Ethernet Layer). Также имеется ПЛК Siemens S7-300 с Profibus DP, который связан с операторской панелью Siemens со встроенным CP 5611. На операторской панели Windows и WinCC (используется встроенный протокол Simatic S7 Protocol Suite/Profibus). Операторская панель подключается к верхнему уровню с помощью OPC-сервера WinCC. Задача: заменить Windows c WinCC на Linux с TM7, оставив существующие ПЛК Siemens S5 и S7. Сервер и операторская панель новые. Для подключения ПЛК Siemens S7-300 с Profibus DP к операторской панели есть CP 5711 (Profibus-USB). Как это можно реализовать? Почитав форум Trace Mode, понял, что встроенных протоколов нет и нужно использовать специализированный OPC-сервер, но такой OPC-сервер будет работать только на Windows, а нужно организовать работу на Linux. Для Siemens S7-300 с Profibus DP единственным решением вижу покупку шлюза, например Profibus-Modbus. А как быть с ПЛК S5? Прошу поправить меня, если где-то ошибся.
Сообщения / Posts 1 | Из / From: РФ
| IP / IP: IP адрес / IP address |
quote:Отправитель / Originally posted by igorlov1995: ... нужно использовать специализированный OPC-сервер, но такой OPC-сервер будет работать только на Windows, а нужно организовать работу на Linux. ... Прошу поправить меня, если где-то ошибся.
Здравствуйте. Используйте OPC UA. Он работает на Linux.
eliseysergeevich
Junior Member / Новичок
Участник № / Member № 9553
отправлено / posted
Здравствуйте! Поясните пожалуйста какие области памяти из протокола Siemens S7: S7AreaDB, S7AreaPE, S7AreaPA, S7AreaMK, S7AreaCM, S7AreaTM (Область [305]) каким областям памяти контроллеров Siemens (конкретно S7-1200, S7-300) соответствуют? Интересует, как обратиться к области отображения входов IW, выходов QW, меркерной памяти (M, MB, MW, MD) и к блокам данных DB. Пример: в контроллере надо прочитать М2.0 - bool IW122 - integer MD100 - real DB10.DBD0 - real
Сообщения / Posts 20 | Из / From: Россия
| IP / IP: IP адрес / IP address |
eliseysergeevich
Junior Member / Новичок
Участник № / Member № 9553
отправлено / posted
Здравствуйте! Поясните пожалуйста какие области памяти из протокола Siemens S7: S7AreaDB, S7AreaPE, S7AreaPA, S7AreaMK, S7AreaCM, S7AreaTM (Область [305]) каким областям памяти контроллеров Siemens (конкретно S7-1200, S7-300) соответствуют? Интересует, как обратиться к области отображения входов IW, выходов QW, меркерной памяти (M, MB, MW, MD) и к блокам данных DB. Пример: в контроллере надо прочитать М2.0 - bool IW122 - integer MD100 - real DB10.DBD0 - real
Сообщения / Posts 20 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
AreaDB - DB AreaPE/Area PA - физический дискретный ввод-вывод AreaMK - флаги-маркеры CM/TM - счетчики-таймеры
Сообщения / Posts 873 | Из / From: Россия
| IP / IP: IP адрес / IP address |
eliseysergeevich
Junior Member / Новичок
Участник № / Member № 9553
отправлено / posted
Nico, Спасибо за ответ! A и E области, это привет от S7-200? Его сняли в 2014г с производства... В попытке разобраться как всё-таки считать что-то с контроллера S7-1215 заметил следующее: Хочу считать содержимое по адресу MW80, там целое число 249(integer или word в данном случае не важно), важно то, что оно состоит из двух байт (MB80 и MB81). В ТМ7 создаю компонент протокола Siemens S7 со следующими настройками: Область - S7AreaMK, адрес переменной - 80,прототип канала - DISCRETE 16.Перетаскиваю в каналы, где образуется канал DISCRETE с числом бит- 16, Формат выбираем F2. Запускаем профайлер и в МРВ наблюдаем число 63232. Не очень похоже на 249...но если посмотреть в двоичной СС, то 249 - 0000 0000 1111 1001, а 63232 - 1111 1001 0000 0000. Байты в слове поменяны местами. У Сименса 0й бит машинного слова начинается с нулевого бита старшего байта (MB81), а 15й бит - это седьмой бит младшего байта (MB80). Таким образом байты в машинном слове надо переставлять, что бы получить правильный результат. Соответственно с двойным словом таже картина... Прошу поправить меня, если что то описал не так и пояснить, как же всётаки правильно считывать данные с контроллеров Сименс?
Сообщения / Posts 20 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
Да, Вы правы, спасибо за найденную проблему. В следующем релизе, который будет выпущен в ближайшее время, будет добавлена поддержка этих контроллеров и эта проблема уже исправлена.