PDA

Просмотр полной версии : ОВЕН СПК 110 и Монитор сети КМС-Ф1 по ModBus Slave: "Не запущен"



Cs-Cs
26.09.2019, 20:42
Всем привет! Вот и я сподобился поздавать вопросы на форуме: век живи - век учись.
Мне ОЧЕНЬ не везёт на данный монитор (КМС-Ф1): то я его настроить никак не мог, то теперь не могу его подцепить в CodeSys, чтобы прочитать из него данные.
Мне нужна помощь: возможно есть какие-то подводные камни, которые я не учёл. Описываю то, что сделано:
1. Есть CodeSys 3.5.SP11 Patch 5.
2. Есть СПК110[M01].
3. Физически в щите есть RS-485, на котором висят модули ввода-вывода ОВЕН и два КМСа. Все адреса и скорости настроены, ничего не пересекается. На всякий случай, у КМСов адреса 10 и 12, у модулей ввода-вывода - 20, 22, 24, 26. Протокол - ModBus RTU везде.
4. В CodeSys в конфигурацию вставлен ModBus Master, под него воткнуты ОВЕНские шаблоны модулей ввода-вывода и...
5. КМС я описал как стандартное ModusGenericSerialSlave. Внёс туда парочку переменных по инструкции (0xA4A4 = Напряжение, 0xB343 = Ток).
В инструкции они значатся как Float. Тут я запутался и тестил то размером по 4 байта, то по 2 байта (как у Real).
6. В маппинге переменных выставлено "2 = Опрашивать всегда в цикле". На всякий случай в коде прописаны переменные типа "Мощность = Напряжение * Ток", а сами Напряжение и Ток воткнуты в визуализацию, чтобы CodeSys уж точно их задействовал и опрашивал.

Что получается в реальности: по шине обмен идёт, с ОВЕНовских модулей вся информация читается (аналоговые входы, цифровые и аналоговые выходы).
На КМСах индикатор обмена мигает. Причём с той частотой, с которой я выставляю опрос переменных. Если на двух КМСах выставить разную частоту опроса переменных - то да, индикаторы обмена на этих КМСах мигают тоже по разному.
НО! Сам CodeSys на устройствах мигает красным треугольником и пишет про "...устройство не запущено".

Я перепробовал всё: создавал-удалял эти устройства, заново забивал туда переменные - ничего не помогает.
Что я упустил и что я делаю не так в данном случае?
Возможности проверить какое-то другое устройство по Modus - нет, потому что сейчас на руках у меня только эти девайсы (и я их уже в щите смонитровал).

При этом я не пойму, куда мне обращать внимание: на косяки КМСов или на косяки CodeSys. Ежели кто имел опыт - пожалуйста направьте меня в нужную сторону. Спасибо!

Евгений Кислов
27.09.2019, 06:33
Добрый день.
Покажите, пожалуйста, настройки опроса КМС (параметры каналов).
А лучше выложите архив проекта (Файл - Архив проекта).

Upd. - вы, видимо, пользовались РЭ с сайта - там что-то не так с картой регистров Modbus (в ней описаны параметры протокола ОВЕН).
Мы внесем необходимые исправления в ближайшее время.
Попробуйте пока использовать адреса регистров отсюда (стр. 72):
https://kipaso.ru/assets/pdf/re_kms-f1_1735.pdf

Cs-Cs
27.09.2019, 09:31
... вот ЖЕ Ж!!!!
Именно! Косяк - в инструкции! Я ещё тогда удивился, кто там всякие красивые значения типа 0xA4A4 выдумывал и зачем!
Всё опрашивается нормально. Тогда осталось два замечания:
а) Действительно - "Не запущен" - это признак того, что что-то не так опрашивается. Можно прям в FAQ по ModBus вносить огромным жирным шрифтом.
б) Про КМС - тогда хорошо бы обновить информацию с сайта.

И ещё доспрошу: а как теперь пользоваться этими параметрами - просто Long b десятичной точкой?
Поделить, что ли на 10 в степени точки и потом перевести в Real? =)

Спасибо за оперативный ответ!

Евгений Кислов
27.09.2019, 10:03
a) в актуальной документации это должно быть упомянуто
б) да, обязательно обновим


И ещё доспрошу: а как теперь пользоваться этими параметрами - просто Long b десятичной точкой?
Поделить, что ли на 10 в степени точки и потом перевести в Real? =)

Все верно, только лучше сначала перевести в REAL, а потом делить.

Cs-Cs
27.09.2019, 10:50
УРА!! Получилось даже без перевода. Прикладываю скриншоты! Вдруг кому сгодится!
Ну и мрак эти КМСы. Что сделал:
1. Написал объединение (UNION) по инструкции для Dword2Word - чтобы DWORD из ModBus читать.
44807
2. Подставил правильные номера регистров (спасибо, что меня ткнули куда надо!).
44808
3. Привязал WORD'ы объединения в обратном порядке, чтобы подстроиться под КМСку
44809
4. Написал в инициализации ModBus для КМСа перемещение точки на 0.00, чтобы считывать до 2 знаков после запятой (балуюсь, проверяю алгоритм).
44810
5. Написал перемножение данных о точке (10 в степени точки) и измеренных данных.
44811 44812

Ох, спасибо! Невезучие у меня эти КМСы - я с ними намучился по первости по всем фронтам! =)