Показать сообщение отдельно
Старый 02.07.2018, 08:07   #1
Norton
Member
 
Регистрация: May 2014
Сообщения: 85
Благодарил(а): 2 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию SMH4 иногда принимает нули

Здравствуйте.

Есть SMH4, есть Modbus Universal MasterOPC и MasterSCADA.
Карту переменных контроллера преобразовал с помощью "segneticstoums" в конфигурационный файл ОРС-сервера, заменил там интерфейс на Modbus TCP, - всё работает.

Проблема возникает с Modbus-переменными типа "Вход" в программе для SMH4. Задача - чтобы контроллер синхронизировал время со временем, которое в MasterSCADA. То есть со скады в контроллер передаются отдельно переменные "Год", "Месяц", "Число", "Час", "Минуты", "Секунды".

От контроллера просто требуется считывать эти переменные и синхронизировать своё время с этими переменными в случае, если его системное время отличается от СКАДовского более чем на 10 секунд. Всё это работает, в программе контроллера связь со СКАДой контролируется, - просто так всякая чушь в память записаться НЕ может.

Каждая переменная "Вход" - в программе контроллера отображается как однонаправленная, только на считывание, - но каким-то образом в СКАДУ из контроллера передаются в непредсказуемом порядке нулевые значения этих переменных. То есть допустим 5 переменных успешно записываются СКАДой и читаются в контроллере, а переменная "Год" равна 0, хотя СКАДА пытается ей записывать "2018", но ноль из контроллера эти попытки пересиливает.

Так же бывает ситуация когда, например, переменная "Секунды" корректно передаётся в контроллер из СКАДы, а переменная "Минуты" показывается 0, и когда "Секунды" доходят до 59 и снова начинают считать с нуля - переменная "Минуты" увеличивается на 1, значение обновляется в СКАДе и в контроллере начинает отображаться корректно.
К этому сообщению прикладываю картинки из программы с рабочего ПЛК и сам проект для SMH4. В проекте оставил только то, что касается описываемой проблемы, остальное удалил.

И ещё - почему эти однонаправленные переменные программа-конвертер "segneticstoums" делает типа read/write, а не просто write? Сам вручную переставляю тип на write - это проблему НЕ решает.

Возникает эта проблема чаще, если СКАДУ запустить раньше, чем включить питание щита с контроллером. Если СКАДУ перезапустить, вроде как всё начинает работать нормально.

На лицо какая-то проблема с работой Modbus'a. Или же я что-то не то делаю, - подскажите как сделать правильно.
Вложения
Тип файла: zip глюк Modbus.zip (169.1 Кбайт, 11 просмотров)
Тип файла: rar картинки_не приходит дата.rar (288.3 Кбайт, 12 просмотров)
Norton вне форума   Ответить с цитированием