Просматривая сайт широко известной торговой площадки наших китайских товарищей увидел комплект автоматизации состоящий из клона контролера Mitsubishi серии FX (14 DI, 10 DO, 6 AI, 2 AO, RS232, RS485, RTC) и цветной панели оператора с диагональю 4,3 дюйма Samkoon EA-043A. Цена комплекта чуть более 8 тыс. руб с доставкой. Какая-то невероятная щедрость, даже программируемые реле у Сименс и Шнайдер стоят в разы дороже!
Про эксперименты с контроллером я рассказывал в предыдущей публикации. Теперь очередь панели оператора. В отличие от клона FX, использование которого по назначению изначально не входило в мои планы, так как немного ранее мою был приобретён для домашней автоматизации нормальный S7-1200 от Сименс. Панельку предполагается использовать по назначению, для просмотра температур и влажностей в доме и бане, задания временных интервалов проветривания, просмотра трендов потребляемой домом мощности и т. п. Подключить эту модель к моему S7-1200 возможно, если ничего ещё не приобретать, только тем же способом что и китайский клон Mitsubishi FX, то есть как Modbus RTU slave. Собственно в этом и заключается необычность подключения панели оператора к контроллеру.
Поскольку у меня на ноутбуке уже давно Linux, среда конфигурирования панели SATOOL версии 6.0.042, бесплатная, была развёрнута в виртуальной виндовс машине. Из упаковки в панель был залит демо проект который, судя по миганию лампочки интерфейса, даже пытался куда-то подключиться. Первым делом нужно было скачать проект, благо среда разработки и панель это позволяют. Для конфигурирования панели на ней имеется отдельный USB порт. Это удобно. Однако скачивание зависло… Отключение-подключение пенели к виртуальной машине сдвинуло процесс с мёртвой точки, но скачанный проект не хотел открываться — намертво вешал виртуальную машину. А панель при перезапуске сообщала что рабочий проект повреждён или отсутствует. Некоторое время ушло на то чтобы осознать — конфигурирование панелей Satkoon из виртуальной среды невозможно, независимо какой именно виндовс в виртуальной машине, из-за нестабильной связи. Пришлось использовать старый ноутбук на виндовс. Из тех же соображений что и в публикациии про клон FX, то есть чтобы не плодить сущности и не увеличивать количество сеансов связи, Modbus input coil и output coil решено не использовать, а дискретные сигналы передавать и принимать упакованными в holding registers.
Что касается внутренней адресации панели то тут всё просто, Modbus input coil и output coil мапятся в LB область памяти с ноля, а Modbus holding registers в LW область памяти тоже с ноля. Специальных Modbus сниферов я не использую, мне достаточно бесплатного NAPOPC.
Тестовые проекты S7-1200 (как Modbus master) и Samkoon EA-043A (как Modbus slave) приведены ниже, комментариев в проектах надеюсь достаточно. Лишь небольшое замечание о распаковке и упаковке битов в слова на стороне Sankoon. Стандартные функции SETBIT и GETBIT, как мне показалось, работают медленнее чем использование масок во встроенном языке макросов. Оставил маски.
В следующей статье будет описано подключение трёхфазного измерителя мощности SINOTIMER DDS578R. В хозяйстве такая вещь может пригодиться если важно сколько из общей потребляемой почности приходится на какой-то конкретный потребитель или строение, например баня.
Всем творческих успехов.
Проект S7-1200 (как Modbus RTU master)