Имелось ввиду переменная в контроллере, соответствующая этому тэгу, она непрерывно менялась во время разрыва. Я постараюсь снять на видео данный эффект...
Вид для печати
Самое главное нужен лог.
Лог во вложении. Ложные значения зафиксированы в 20:52:15...18. Тэг с адресом 6 формата UINT32.
... ещё на всякий случай. Зафиксировал конкретные значения:
Время примерно 21:21:55, нормальное значение тэга - 1078, ложное значение - 9365.
В указанное время запросов по адресу 6 нет. Есть чуть раньше:
[03.02.2015 20:52:14.482] TRACE : (10.0.6.10:502) Rx: [0017] 01 C4 00 00 00 0B 06 10 00 06 00 02 04 2B 1F 00 00
[03.02.2015 20:52:14.482] TRACE : (10.0.6.10:502) Tx: [0012] 01 C4 00 00 00 06 06 10 00 06 00 02
[03.02.2015 20:52:14.494] TRACE : (10.0.6.10:502) Rx: [0017] 01 C4 00 00 00 0B 06 10 00 06 00 02 04 29 7D 00 00
[03.02.2015 20:52:14.494] TRACE : (10.0.6.10:502) Tx: [0012] 01 C4 00 00 00 06 06 10 00 06 00 02
[03.02.2015 20:52:14.506] TRACE : (10.0.6.10:502) Rx: [0017] 01 C4 00 00 00 0B 06 10 00 06 00 02 04 27 DB 00 00
[03.02.2015 20:52:14.506] TRACE : (10.0.6.10:502) Tx: [0012] 01 C4 00 00 00 06 06 10 00 06 00 02
[03.02.2015 20:52:14.518] TRACE : (10.0.6.10:502) Rx: [0017] 01 C4 00 00 00 0B 06 10 00 06 00 02 04 26 39 00 00
[03.02.2015 20:52:14.518] TRACE : (10.0.6.10:502) Tx: [0012] 01 C4 00 00 00 06 06 10 00 06 00 02
[03.02.2015 20:52:14.530] TRACE : (10.0.6.10:502) Rx: [0017] 01 C4 00 00 00 0B 06 10 00 06 00 02 04 25 69 00 00
[03.02.2015 20:52:14.530] TRACE : (10.0.6.10:502) Tx: [0012] 01 C4 00 00 00 06 06 10 00 06 00 02
[03.02.2015 20:52:14.542] TRACE : (10.0.6.10:502) Rx: [0017] 01 C4 00 00 00 0B 06 10 00 06 00 02 04 23 C7 00 00
[03.02.2015 20:52:14.542] TRACE : (10.0.6.10:502) Tx: [0012] 01 C4 00 00 00 06 06 10 00 06 00 02
Как вы сами можете видеть контроллер шлет за короткое время набор разных значений.
Лог за указанное вами время отсутствует.
Во вложении скриншот ситуации, которая меня беспокоит. Это происходит после физического разрыва соединения. Стрелками отмечены связанные тэги. Реальное значение = 1077 не меняется в контроллере, а в сервере вижу ложные значения. Судя по логу сервер эти ложные значения честно получает. Чрез несколько секунд значение в сервере восстановится. Кто же всё-таки виноват- контроллер, который почему-то генерит неправильное сообщение, или сервер, который не должен это сообщение принимать?
Посмотрите на скриншот 1B 9B это 7067. Почему сервер не должен принять это значение? Как он должен определить что оно не достоверное?
Да, да, я специально поймал этот момент, чтобы было видно транзакцию. Вижу, что значение приходит для сервера вроде бы достоверное. Пойду спрошу у Владислава... эх, опять сниффер заставит запускать... :)
В MasterOPC time.TimeNow() возвращает время с секундной точностью, однако во всех логах оно отдаётся с точностью до тысячной доли секунды, а среди функций работы со временем есть функции, работающие с точностью до милисекунды. Как получить текущее время с такой точностью?