Как я могу общаться между Siemens S7-1200 и python?

Я запускаю процесс на ПЛК S7-1200, и мне нужно, чтобы он отправил сигнал запуска моему скрипту python, после того, как скрипт будет выполнен, он должен отправить что-то обратно в ПЛК, чтобы начать следующий этап. Ох, и это должно быть сделано в лестницу.

есть ли быстрый и грязный способ отправить вещи через profibus или мне лучше использовать только вещь RS232?

7 ответов


Я бы пошел с библиотеками SNAP7 и python-snap7. Пример о том, как установить его на Raspberry pi, найденный в этом блоге: http://simplyautomationized.blogspot.com/2014/12/raspberry-pi-getting-data-from-s7-1200.html

обновление:

видео пошаговое руководство о том, как его настроить:https://youtu.be/yJNEsI5KJxs


Я хотел бы использовать libnodave на стороне ПК для изменения значения некоторого тега M или тега DB в PLC. Вы можете легко сделать лестничную ступеньку, которая будет контролировать этот тег и выполнять дальнейшие действия. Хотя libnodave не поддерживает Python изначально, вы можете найти оболочку python здесь.


после неудачи с libnodave и OPC, я создал TCON,TSEND и trecv связь вещь. Он передает байт по TCP, и он работает.


существует коммерческая библиотека под названием" S7connector " от Rothenbacher GmbH (очевидно, это не "s7connector" на sourceforge). Он предназначен для .NET framework, поэтому может использоваться с IronPython.

Он работает с S7-1200 PLCs. Вам просто нужно убедиться, что БД, которую вы хотите прочитать / записать, не является оптимизированной БД стиля S7-1200, а совместимой с S7-300/400, опция, которую вы можете установить при создании БД на портале TIA. Этот lib также позволяет читать и писать все I / O порты - "теневые регистры" (не знаю, как они называются официально), а также напрямую, переопределяя первые.


есть несколько клиентов Modbus TCP, доступных для Python, я успешно использовал pyModbusTCP. Портал ТИА IDE для S7-1200 имеет функцию сервера Modbus которую вы можете нагрузить к вашему PLC который позволит вам прочитать и написать сразу к PLC.

https://support.industry.siemens.com/cs/ww/en/view/83130159


Ну, быстрый google "python rs232" появился какой-то сайт говорить о делать управления робототехники через rs232 используя pySerial. Поэтому, если вы знаете, как подключить виджет к rs232, вы можете пойти по этому маршруту.


нет никакого способа, которым вы можете общаться с процессорами ПЛК S7-1200 без OPC. De libnodave сделан для S7-300 и S7-400 не для символического основанного S7-1200.

вы можете купить ОДК от Сименса или использовать ОПК. Backdraw OPC накладные расходы, но также, что использование памяти в S7-1200 увеличится, потому что символическое именование не работает в данный момент для OPC.