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

С или С++ библиотека для подключения к контроллерам S7

ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)
Ответить

Автор темы
RavilN
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 01 фев 2019, 09:43
Имя: Равил
Страна: Canada
город/регион: Edmonton

С или С++ библиотека для подключения к контроллерам S7

Сообщение RavilN »

Здравствуйте,
Посоветуйте пожалуйста какие библиотеки существуют чтобы подключиться и обмениваться данными с контроллерами семейства S7 из программ на языке С или С++. Нашел Snap7: http://snap7.sourceforge.net/, кто пробовал использовать, могли бы поделиться вашим опытом. Есть ли что-нибудь получше? Можно также коммерческие.
Спасибо, Равил

winb
освоился
освоился
Сообщения: 248
Зарегистрирован: 31 янв 2017, 08:44
Имя: Маркушин Андрей Геннадьевич
Страна: Россия
город/регион: Нижегородская обл., Выкса
Благодарил (а): 14 раз
Поблагодарили: 59 раз

С или С++ библиотека для подключения к контроллерам S7

Сообщение winb »

Для ответственных производств подобные библиотеки нужно использовать с осторожностью, так как многие бесплатные библиотеки разработаны с использованием полученных с помощью реверс-инжиниринга спецификаций проприетарного протокола (S7). Если приложение используется для чтения данных с контроллера для составления отчетов, например, их использование допустимо, если для управления (т.е. хотите в контроллер что-то писать), то я бы не рекомендовал. Тем более в лицензионном соглашении (если оно есть) часто встречаются такие положения (пример из лицензии для Snap7):
[+]
Disclaimer of Warranty


THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.



IF ANYONE BELIEVES THAT, WITH THIS WEBSITE OR WITH SNAP7 PROJECT HAVE BEEN VIOLATED SOME COPYRIGHTS, PLEASE EMAIL US, AND ALL THE NECESSARY CHANGES WILL BE MADE.
Из коммерческих на ум приходит только Сименсовский ProDave (то еще удовольствие с ним работать).
Бесплатных - достаточно много, быстро вспомнить могу только LibNoDave. Но у неё в дисклеймере то же "используйте на свой страх и риск" прописано.

Parliament74
корифей
корифей
Сообщения: 792
Зарегистрирован: 16 ноя 2016, 11:33
Имя: Максим Владимирович
Страна: Россия
город/регион: Магнитогорск
Благодарил (а): 16 раз
Поблагодарили: 202 раза

С или С++ библиотека для подключения к контроллерам S7

Сообщение Parliament74 »

Проще тогда уж утащить данные с контроллера в OPC-сервер, а к OPC-серверу каким-нибудь клиентом на C++ уже стучаться, тогда можно будет потом хоть Siemens менять на любого другого производителя, да хоть и клиента...
Тем более если деньги есть, очень неплохие варианты можно найти.

А так непонятно, что подразумевается под "подключиться и обмениваться данными" (как именно физически осуществляется подключение / постоянно / периодически / насколько критична связь), потом непонятно что подразумевается под "с контроллерами семейства S7" - это и S7-200 и S7-300/400 и S7-1200/1500 или вообще может быть речь идёт о WinAC...

Автор темы
RavilN
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 01 фев 2019, 09:43
Имя: Равил
Страна: Canada
город/регион: Edmonton

С или С++ библиотека для подключения к контроллерам S7

Сообщение RavilN »

Да, можно через OPC сервер. Или еще лучше OPC UA - он может быть прямо в контороллере быть.
Но у меня задача иметь прямой доступ ко всему "семейству" - это S7-200, 300, 400, 1200, 1500, используя предпочтительно С, или хотя бы С++. Причем кросс-платформенный, то есть нужен исходный текст, Что-то типа Windows DLL не подходит.
Здесь "доступ", "обмен данными" имеется ввиду в самом широком смысле - чем шире, тем лучше. Чтение/запись регистров, и т.д.

Parliament74
корифей
корифей
Сообщения: 792
Зарегистрирован: 16 ноя 2016, 11:33
Имя: Максим Владимирович
Страна: Россия
город/регион: Магнитогорск
Благодарил (а): 16 раз
Поблагодарили: 202 раза

С или С++ библиотека для подключения к контроллерам S7

Сообщение Parliament74 »

Всё равно задача яснее не стала. Что значит "иметь прямой доступ"?

Опять же, что понимается под кросс-платформенностью? Windows/Linux/Android? Или ещё что-то (QNX, VxWorks, куча других)?

Готовых решений таких вы не найдёте (по крайней мере пока свой вопрос не формализуете, чтобы у остальных могла в голове сложиться картинка процесса).

Автор темы
RavilN
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 01 фев 2019, 09:43
Имя: Равил
Страна: Canada
город/регион: Edmonton

С или С++ библиотека для подключения к контроллерам S7

Сообщение RavilN »

Насчет кросс-платформенный, для примера, PC (Windows/Ubuntu Linux),и какой - нибудь Embedded Linux. Точно определенного списка нет. "Доступ" имеется ввиду, например, хотя бы в том объеме, которая требуется для взаимодействия с SCADA/HMI.

Можно поставить вопрос попроще: что можно добавить к списку С/С++ библиотек, позволяющих обмениваться данными с контроллерами S7:
1. Siemens ProDave
2. Snap 7
3. LibNoDave

Parliament74
корифей
корифей
Сообщения: 792
Зарегистрирован: 16 ноя 2016, 11:33
Имя: Максим Владимирович
Страна: Россия
город/регион: Магнитогорск
Благодарил (а): 16 раз
Поблагодарили: 202 раза

С или С++ библиотека для подключения к контроллерам S7

Сообщение Parliament74 »

4. SuperCom S7 Protocol Library

Есть ещё на C# S7 Connector от Rothenbacher

winb
освоился
освоился
Сообщения: 248
Зарегистрирован: 31 янв 2017, 08:44
Имя: Маркушин Андрей Геннадьевич
Страна: Россия
город/регион: Нижегородская обл., Выкса
Благодарил (а): 14 раз
Поблагодарили: 59 раз

С или С++ библиотека для подключения к контроллерам S7

Сообщение winb »

RavilN писал(а): 01 фев 2019, 20:34 Насчет кросс-платформенный, для примера, PC (Windows/Ubuntu Linux),и какой - нибудь Embedded Linux. Точно определенного списка нет. "Доступ" имеется ввиду, например, хотя бы в том объеме, которая требуется для взаимодействия с SCADA/HMI.

Можно поставить вопрос попроще: что можно добавить к списку С/С++ библиотек, позволяющих обмениваться данными с контроллерами S7:
1. Siemens ProDave
2. Snap 7
3. LibNoDave
ProDave нужно из этого списка исключить - это не совсем библиотека, к тому же - не кроссплатформенное.
Ответить

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