|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
|
Опции темы | Поиск в этой теме |
02.07.2018, 08:07 | #1 |
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. Или же я что-то не то делаю, - подскажите как сделать правильно. |
02.07.2018, 09:10 | #2 | |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 157
Благодарил(а): 240 раз(а)
Поблагодарили:
165 раз(а) в 157 сообщениях
|
Ответ: Работа с Modbus Universal MasterOPC Server 32
Цитата:
|
|
02.07.2018, 09:31 | #3 | |
Member
Регистрация: May 2014
Сообщения: 85
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Работа с Modbus Universal MasterOPC Server 32
Цитата:
Переменные в Юникс - часть программы на С писать? Не совсем понял что имеете в виду. |
|
02.07.2018, 11:10 | #4 | |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 157
Благодарил(а): 240 раз(а)
Поблагодарили:
165 раз(а) в 157 сообщениях
|
Ответ: Работа с Modbus Universal MasterOPC Server 32
Цитата:
|
|
02.07.2018, 11:22 | #5 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: SMH4 иногда принимает нули
Цитата:
Смените IP контроллера. Возможно, кто-то ещё записывает данные на эти переменные. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
02.07.2018, 11:44 | #6 |
Member
Регистрация: May 2014
Сообщения: 85
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: SMH4 иногда принимает нули
LordN спасибо
Arsie сделана отдельная локальная сеть, и в ней кроме SMH4 и МастерСкады никого нет, соответственно никто кроме МастерСкады ничего записать в контроллер не может. |
02.07.2018, 11:49 | #7 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: SMH4 иногда принимает нули
Цитата:
Поэтому предлагаю такой опыт. Отключите вообще всё, а лучше даже соедините комп и контроллер прямым шнурком. Также удалите всё с порта ethernet в проекте. Запустите лоджик в отладку и запишите через него числа на переменные. И дайте лоджику так в отладке повисеть. Если на ноль ничего не сбросится, значит это 100% внешняя причина. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|