Здравствуйте,
Посоветуйте пожалуйста какие библиотеки существуют чтобы подключиться и обмениваться данными с контроллерами семейства S7 из программ на языке С или С++. Нашел Snap7: http://snap7.sourceforge.net/, кто пробовал использовать, могли бы поделиться вашим опытом. Есть ли что-нибудь получше? Можно также коммерческие.
Спасибо, Равил
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
С или С++ библиотека для подключения к контроллерам S7
-
- здесь недавно
- Сообщения: 3
- Зарегистрирован: 01 фев 2019, 09:43
- Имя: Равил
- Страна: Canada
- город/регион: Edmonton
-
- освоился
- Сообщения: 248
- Зарегистрирован: 31 янв 2017, 08:44
- Имя: Маркушин Андрей Геннадьевич
- Страна: Россия
- город/регион: Нижегородская обл., Выкса
- Благодарил (а): 14 раз
- Поблагодарили: 59 раз
С или С++ библиотека для подключения к контроллерам S7
Для ответственных производств подобные библиотеки нужно использовать с осторожностью, так как многие бесплатные библиотеки разработаны с использованием полученных с помощью реверс-инжиниринга спецификаций проприетарного протокола (S7). Если приложение используется для чтения данных с контроллера для составления отчетов, например, их использование допустимо, если для управления (т.е. хотите в контроллер что-то писать), то я бы не рекомендовал. Тем более в лицензионном соглашении (если оно есть) часто встречаются такие положения (пример из лицензии для Snap7):
Из коммерческих на ум приходит только Сименсовский ProDave (то еще удовольствие с ним работать).
Бесплатных - достаточно много, быстро вспомнить могу только LibNoDave. Но у неё в дисклеймере то же "используйте на свой страх и риск" прописано.
Бесплатных - достаточно много, быстро вспомнить могу только LibNoDave. Но у неё в дисклеймере то же "используйте на свой страх и риск" прописано.
-
- корифей
- Сообщения: 792
- Зарегистрирован: 16 ноя 2016, 11:33
- Имя: Максим Владимирович
- Страна: Россия
- город/регион: Магнитогорск
- Благодарил (а): 16 раз
- Поблагодарили: 202 раза
С или С++ библиотека для подключения к контроллерам S7
Проще тогда уж утащить данные с контроллера в OPC-сервер, а к OPC-серверу каким-нибудь клиентом на C++ уже стучаться, тогда можно будет потом хоть Siemens менять на любого другого производителя, да хоть и клиента...
Тем более если деньги есть, очень неплохие варианты можно найти.
А так непонятно, что подразумевается под "подключиться и обмениваться данными" (как именно физически осуществляется подключение / постоянно / периодически / насколько критична связь), потом непонятно что подразумевается под "с контроллерами семейства S7" - это и S7-200 и S7-300/400 и S7-1200/1500 или вообще может быть речь идёт о WinAC...
Тем более если деньги есть, очень неплохие варианты можно найти.
А так непонятно, что подразумевается под "подключиться и обмениваться данными" (как именно физически осуществляется подключение / постоянно / периодически / насколько критична связь), потом непонятно что подразумевается под "с контроллерами семейства S7" - это и S7-200 и S7-300/400 и S7-1200/1500 или вообще может быть речь идёт о WinAC...
-
- здесь недавно
- Сообщения: 3
- Зарегистрирован: 01 фев 2019, 09:43
- Имя: Равил
- Страна: Canada
- город/регион: Edmonton
С или С++ библиотека для подключения к контроллерам S7
Да, можно через OPC сервер. Или еще лучше OPC UA - он может быть прямо в контороллере быть.
Но у меня задача иметь прямой доступ ко всему "семейству" - это S7-200, 300, 400, 1200, 1500, используя предпочтительно С, или хотя бы С++. Причем кросс-платформенный, то есть нужен исходный текст, Что-то типа Windows DLL не подходит.
Здесь "доступ", "обмен данными" имеется ввиду в самом широком смысле - чем шире, тем лучше. Чтение/запись регистров, и т.д.
Но у меня задача иметь прямой доступ ко всему "семейству" - это S7-200, 300, 400, 1200, 1500, используя предпочтительно С, или хотя бы С++. Причем кросс-платформенный, то есть нужен исходный текст, Что-то типа Windows DLL не подходит.
Здесь "доступ", "обмен данными" имеется ввиду в самом широком смысле - чем шире, тем лучше. Чтение/запись регистров, и т.д.
-
- корифей
- Сообщения: 792
- Зарегистрирован: 16 ноя 2016, 11:33
- Имя: Максим Владимирович
- Страна: Россия
- город/регион: Магнитогорск
- Благодарил (а): 16 раз
- Поблагодарили: 202 раза
С или С++ библиотека для подключения к контроллерам S7
Всё равно задача яснее не стала. Что значит "иметь прямой доступ"?
Опять же, что понимается под кросс-платформенностью? Windows/Linux/Android? Или ещё что-то (QNX, VxWorks, куча других)?
Готовых решений таких вы не найдёте (по крайней мере пока свой вопрос не формализуете, чтобы у остальных могла в голове сложиться картинка процесса).
Опять же, что понимается под кросс-платформенностью? Windows/Linux/Android? Или ещё что-то (QNX, VxWorks, куча других)?
Готовых решений таких вы не найдёте (по крайней мере пока свой вопрос не формализуете, чтобы у остальных могла в голове сложиться картинка процесса).
-
- здесь недавно
- Сообщения: 3
- Зарегистрирован: 01 фев 2019, 09:43
- Имя: Равил
- Страна: Canada
- город/регион: Edmonton
С или С++ библиотека для подключения к контроллерам S7
Насчет кросс-платформенный, для примера, PC (Windows/Ubuntu Linux),и какой - нибудь Embedded Linux. Точно определенного списка нет. "Доступ" имеется ввиду, например, хотя бы в том объеме, которая требуется для взаимодействия с SCADA/HMI.
Можно поставить вопрос попроще: что можно добавить к списку С/С++ библиотек, позволяющих обмениваться данными с контроллерами S7:
1. Siemens ProDave
2. Snap 7
3. LibNoDave
Можно поставить вопрос попроще: что можно добавить к списку С/С++ библиотек, позволяющих обмениваться данными с контроллерами S7:
1. Siemens ProDave
2. Snap 7
3. LibNoDave
-
- корифей
- Сообщения: 792
- Зарегистрирован: 16 ноя 2016, 11:33
- Имя: Максим Владимирович
- Страна: Россия
- город/регион: Магнитогорск
- Благодарил (а): 16 раз
- Поблагодарили: 202 раза
С или С++ библиотека для подключения к контроллерам S7
4. SuperCom S7 Protocol Library
Есть ещё на C# S7 Connector от Rothenbacher
Есть ещё на C# S7 Connector от Rothenbacher
-
- освоился
- Сообщения: 248
- Зарегистрирован: 31 янв 2017, 08:44
- Имя: Маркушин Андрей Геннадьевич
- Страна: Россия
- город/регион: Нижегородская обл., Выкса
- Благодарил (а): 14 раз
- Поблагодарили: 59 раз
С или С++ библиотека для подключения к контроллерам S7
ProDave нужно из этого списка исключить - это не совсем библиотека, к тому же - не кроссплатформенное.RavilN писал(а): ↑01 фев 2019, 20:34 Насчет кросс-платформенный, для примера, PC (Windows/Ubuntu Linux),и какой - нибудь Embedded Linux. Точно определенного списка нет. "Доступ" имеется ввиду, например, хотя бы в том объеме, которая требуется для взаимодействия с SCADA/HMI.
Можно поставить вопрос попроще: что можно добавить к списку С/С++ библиотек, позволяющих обмениваться данными с контроллерами S7:
1. Siemens ProDave
2. Snap 7
3. LibNoDave