Пример связи Siemens S7-1500 и LabVIEW без OPC

Делись идеей, получай поддержку и критику!

Пример связи Siemens S7-1500 и LabVIEW без OPC

Postby Silver87 on 16 Dec 2017, 22:14

Приветствую!
Выкладываю пример драйвера связи контроллера Siemens S7-1500 и LabVIEW, чтобы самому не забыть и может кому-нибудь ещё пригодится.

Делал не с нуля :dntknw: и когда начинал, нашёл следующие варианты:
1) OPC - не подошёл, т.к. лишняя прослойка склонная к глюкам и инсталлер с ним это тоже .
2) Собственный TCP протокол - это тоже куча не нужной .
3) Библиотека libnodave - наверное, классная штука, но это лишние зависимости в проекте от внешних dll, ну и просто-напросто "сложно" понятное у них .
4) Самым удобным и понятным оказался на полностью встроенных в LV функциях. Этот пример основан на более фундаментальном и его на форуме тоже использовать. Там есть видимо куча интересных функций вплоть до доступа к оптимизированным блокам данных, однако всё выглядит сыро и плохо документировано.

Пример предоставленный DMC оказался для меня самым понятным, но он слишком упрощённый в одном и усложнённый в другом (естественно под мою задачу).
Приложенный пример гораздо ближе к реальному применению, и снабжён подробными комментариями на русском :cool:
Из значимых доделок:
1) Подключение переделано с 1200 серии на 1500 (проверено на CPU 1512SP-1 PN и на CPU 1517-3 PN/DP)
2) Сделано не только чтение но и запись в ПЛК.
3) Упрощен процесс изменения количества и типа передаваемых данных (ненужно в ручную собирать и разбирать данные в LV)
4) Сделано восстановление связи после обрыва и несколько других мелочей.

Из упрощений под мою задачу:
1) В обе стороны передаётся по два блока по 440 байт (880 байт в одну сторону) (можно легко поменять).
2) Передавать можно только переменные типа Real, Int и Bool, объединённые в массивы.
3) Можно относительно легко выбирать, сколько и каких переменных передавать, просто указывая диапазон адресов массива нужного типа.

Что интересно: код уже долго тестировался, но вдруг кто найдёт ошибки? или есть предложения по улучшению кода?
Attachments
S7.png
Снипет основной функции
Driver_S7.zip
Проект в LV
(308.03 KiB) Downloaded 6 times
S7_communications_LabView(TIA_v14).zip
Проект в TIA Portal v14
(1.42 MiB) Downloaded 5 times
Silver87
interested
interested
 
Posts: 1
Joined: 05 Nov 2017, 17:57
LabVIEW Version: 2017
Karma: 5

Return to Проекты

Who is online

Users browsing this forum: No registered users and 3 guests

cron