Автор |
Повідомлення |
Повідомлення створено: 13. 01. 2011 [12:32]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
Лог протокола ModBus изучайте.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 13. 01. 2011 [13:12]
|
yozhik
Алексей Николаев
Зареєстрован(а) с: 29.11.2010
Повідомлення: 127
|
В логах в момент пропадания связи только это:
Thu Jan 13 14:10:43 2011 TCP: 'ctrlAVSN_T2' --> 1(Sockets.socketAVSN_T1)
REQ ->
ERR -> 14:Device error: Connect to Internet socket error: Operation now in progress!
|
Повідомлення створено: 13. 01. 2011 [14:11]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
Значит Вы сами и шлёте пустые запросы.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 13. 01. 2011 [14:28]
|
yozhik
Алексей Николаев
Зареєстрован(а) с: 29.11.2010
Повідомлення: 127
|
А параметр reqTm - время запроса, а именно время, в течение которого ожидать ответа задается в каких единицах? В секундах или мс?
|
Повідомлення створено: 13. 01. 2011 [15:19]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"yozhik" wrote:
А параметр reqTm - время запроса, а именно время, в течение которого ожидать ответа задается в каких единицах? В секундах или мс?
В миллисекундах. Его можно вообще не указывать, тогда время будет взято из таймингов транспорта.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 13. 01. 2011 [15:51]
|
yozhik
Алексей Николаев
Зареєстрован(а) с: 29.11.2010
Повідомлення: 127
|
В общем проблема решилась установлением значений >10 в reqTm. Уже пару часов работает без единого сбоя. Спасибо.
|
Повідомлення створено: 14. 04. 2011 [10:37]
|
yozhik
Алексей Николаев
Зареєстрован(а) с: 29.11.2010
Повідомлення: 127
|
Есть устройство, с которого идет чтение данных по Modbus TCP:
R_b0:0x0813:r:on0:state0
R_b1:0x0813:r:on1:state1
R_b2:0x0813:r:on2:state2
R_b3:0x0813:r:on3:state3
R_b4:0x0813:r:on4:state4
R:0x0813:r:on_byte:state_byte
При отключении данного устройства, однако, наблюдаются следующуе значения переменных:
state0: On
state1: Off
state2: Off
state3: Off
state4: Off
state_byte: <EVAL>
То что в младшем бите 1 это так и задумано или глюк? Эта особенность очень портит жизнь в паре мест в проекте. Если бы значение битов было <EVAL> - было бы вообще хорошо.
|
Повідомлення створено: 14. 04. 2011 [11:29]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"yozhik" wrote:
То что в младшем бите 1 это так и задумано или глюк? Эта особенность очень портит жизнь в паре мест в проекте. Если бы значение битов было <EVAL> - было бы вообще хорошо.
Исправлено
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 29. 04. 2011 [07:14]
|
Andry
Андрей Смирнов
Зареєстрован(а) с: 30.12.2010
Повідомлення: 2
|
DAQ.ModBus
При создании тестового проекта на OpenSCADA столкнулся со следующей проблемой: в контроллер необходимо записывать атрибуты типа int32 и float, причём, изменение в контроллере должно производится сразу всего атрибута, что реализуется с помощью команды ModBus на запись группы регистров.
OpenSCADA для записи атрибутов использует только команду 06 (установка одного регистра), и, к тому же, команды на запись формируются только для изменившихся значений слов int32 и float.
Считаю, что для 32-х разрядных атрибутов, необходимо реализовать запись в контроллер командой установки нескольких регистров, если регистры идут подряд или близко расположены (есть же оптимизация для чтения).
|
Повідомлення створено: 29. 04. 2011 [08:54]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"Andry" wrote:
OpenSCADA для записи атрибутов использует только команду 06 (установка одного регистра), и, к тому же, команды на запись формируются только для изменившихся значений слов int32 и float.
Команда 16 уже поддерживается, и, к тому же это правильно, почитайте про разницу синхронного и асинхронного режимов записи ( http://wiki.oscada.org/Doc/DAQ ).
"Andry" wrote:
Считаю, что для 32-х разрядных атрибутов, необходимо реализовать запись в контроллер командой установки нескольких регистров, если регистры идут подряд или близко расположены (есть же оптимизация для чтения).
Если Вы так считаете, то могли бы и реализовать. Это же открытый проект, а мы с радостью примем Ваши патчи и рассмотрим их.
Learn, learn and learn better than work, work and work.
|