![]() |
![]() ![]() |
|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#1 |
Member
Регистрация: May 2014
Сообщения: 85
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Здравствуйте.
Есть 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. Или же я что-то не то делаю, - подскажите как сделать правильно. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 3 854
Благодарил(а): 224 раз(а)
Поблагодарили:
141 раз(а) в 133 сообщениях
|
![]() |
![]() |
![]() |
![]() |
#3 |
Member
Регистрация: May 2014
Сообщения: 85
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]() Переменные в Юникс - часть программы на С писать? Не совсем понял что имеете в виду. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 3 854
Благодарил(а): 224 раз(а)
Поблагодарили:
141 раз(а) в 133 сообщениях
|
![]() |
![]() |
![]() |
![]() |
#5 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 357
Благодарил(а): 15 раз(а)
Поблагодарили:
607 раз(а) в 555 сообщениях
|
![]() __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#6 |
Member
Регистрация: May 2014
Сообщения: 85
Благодарил(а): 2 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
LordN спасибо
Arsie сделана отдельная локальная сеть, и в ней кроме SMH4 и МастерСкады никого нет, соответственно никто кроме МастерСкады ничего записать в контроллер не может. |
![]() |
![]() |
![]() |
#7 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 357
Благодарил(а): 15 раз(а)
Поблагодарили:
607 раз(а) в 555 сообщениях
|
![]() Поэтому предлагаю такой опыт. Отключите вообще всё, а лучше даже соедините комп и контроллер прямым шнурком. Также удалите всё с порта ethernet в проекте. Запустите лоджик в отладку и запишите через него числа на переменные. И дайте лоджику так в отладке повисеть. Если на ноль ничего не сбросится, значит это 100% внешняя причина. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
SMH4, Modbus TCP, ошибка приема/передачи "Connection Closed Gracefully" | Makrel | Связь с внешним миром | 11 | 21.04.2020 14:23 |
SMH4 не видит модем ICM(решено) | atm | SMConnect & SMConfig | 2 | 28.02.2020 15:26 |
SMH4 не подключается к OpenVPN (решено) | nizercat | SMConnect & SMConfig | 0 | 21.12.2019 11:11 |
Соотношение разрешений экрана SMH2G/2Gi и SMH4 | Arsie | SMConstructor (теплопункты) | 1 | 06.10.2017 16:27 |
Разборка SMH4. Замена корпуса SMH4 (в сборе с экраном и клавиатурой) | Gromov | Библиотека | 3 | 22.09.2017 14:55 |