PDA

Просмотр полной версии : ЧТение параметра из старшего и младшего слов через инсат опс



kjum4n
02.02.2024, 04:38
Доброго всем дня! не могу разобраться как читать параметры расходомера FCI, параметры температуры и расхода каждый состоят из двух тэгов, как привести их к читаемому виду в инсат? даташит железки прикладываю.

1exan
02.02.2024, 04:54
Доброго всем дня! не могу разобраться как читать параметры расходомера FCI, параметры температуры и расхода каждый состоят из двух тэгов, как привести их к читаемому виду в инсат? даташит железки прикладываю.

Ещё не пробовали опрашивать? Что получается?

kjum4n
02.02.2024, 04:56
пробовал отдельно читать 4103 и 4104 как float, получаю два значения вообще не похожих на показания, не понимаю как их в одно объединить, какая математика нужна...

kjum4n
02.02.2024, 04:59
идеально бы читать 5101 параметр, но его вообще не понятно как прочесть...

МихаилГл
02.02.2024, 05:31
пробовал отдельно читать 4103 и 4104 как float, получаю два значения вообще не похожих на показания, не понимаю как их в одно объединить, какая математика нужна...

Это должны быть 2 регистра, читаемые как одно float число. Пробуйте менять местами регистры и байты.


идеально бы читать 5101 параметр, но его вообще не понятно как прочесть...

Это MODBUS Daniel Extension, с ним не работал, пишут что 1 регистр это 32 бита. Обычный модбас мастер его не прочитает никогда.

kjum4n
02.02.2024, 06:10
получилось прочесть как флоат параметр Flow по адресу 4099, параметр TEMP по адресу 4101 с отключеной перестановкой байт. а для чего второй тег? в плане я прочел у каждого параметра по одному тегу а вторые зачем нужны?

1exan
02.02.2024, 06:39
получилось прочесть как флоат параметр Flow по адресу 4099, параметр TEMP по адресу 4101 с отключеной перестановкой байт. а для чего второй тег? в плане я прочел у каждого параметра по одному тегу а вторые зачем нужны?

Регистры 4ххх похоже как раз и предназначены для работы обычным модбасом.
Поскольку значения представляют собой 32 битный FLOAT
"(DATA TYPE “SPECIAL 1”: This is a collection of discrete registers that contain a single precision (32 bit) floating point value, and must be treated and interpreted as a single precision floating point number by the DCS or the PLC)",
то они соответственно и занимают каждое по два 16 битных регистра, помеченные в описании индексами LS и MS.

Вот только адреса у вас странные, должны быть 4101 и 4103 и указанием в OPC типа "FLOAT"
73247

МихаилГл
02.02.2024, 07:00
Регистры 4ххх похоже как раз и предназначены для работы обычным модбасом.
Поскольку значения представляют собой 32 битный FLOAT
"(DATA TYPE “SPECIAL 1”: This is a collection of discrete registers that contain a single precision (32 bit) floating point value, and must be treated and interpreted as a single precision floating point number by the DCS or the PLC)",
то они соответственно и занимают каждое по два 16 битных регистра, помеченные в описании индексами LS и MS.

Вот только адреса у вас странные, должны быть 4101 и 4103 и указанием в OPC типа "FLOAT"
73247

Там так и есть, MS и LS одного флоата в соседних регистрах.

А ну да, в описании не флоат показано, но далее в примере показано что это флоат.

МихаилГл
02.02.2024, 07:01
получилось прочесть как флоат параметр Flow по адресу 4099, параметр TEMP по адресу 4101 с отключеной перестановкой байт. а для чего второй тег? в плане я прочел у каждого параметра по одному тегу а вторые зачем нужны?

Второй читается автоматом, когда вы выбираете в ОРС тип переменной и количество регистров на переменную.