ТРМ 202, протокол обмена ОВЕН, библиотека owen_io_lib.dll.
Не нашел понятия статуса в протоколе OWEN. В modbus есть статус регистр, который к примеру может показать ошибки на каналах.
В описании работы по протоколу ОВЕН для оперативных параметров PV (формата float24) в поле "Характеристика" упоминается:
PV* (опер.) B8DF F24 Измеренное значение входной величины или код ошибки: - 0xFD – ошибка на входе - 0xFE – отсутствие связи с АЦП - 0xF0 – вычисленное значение заведомо не верно (ответ при наличии Er.64) Определяется диапазоном измерения датчика
Вопрос: как понять что ошибка?
Когда все нормально сигнал на входах есть, я значения вижу. Пример получения значения
Код:
[DllImportAttribute("owen_io.dll", EntryPoint = "ReadFloat24", CallingConvention = CallingConvention.StdCall)]
public static extern int ReadFloat24(int adr, int adr_type, System.IntPtr command, ref float value, int index);
...
IntPtr name = Marshal.StringToCoTaskMemAnsi(textBox1.Text);
float value = 0;
ConnectionError res = (ConnectionError)NativeMethods.ReadFloat24(deviceAddress, 0, name, ref value, Convert.ToInt32(comboBox1.Text));
Value - значение
Res - код ошибки.
Если с сигналами все в порядке то в Value=значение, Res = Ok(0)
Если нет сигнала то Vulue без изменения, Res = NErr(-104)
В конфигураторе, если нет сигнала, пишется ошибка на входе. Как мне идентифицировать ошибку на входе?