С# оказалось мы не можем использовать, лицензия Standart. А с вопросом разобрались. Если создать программу (в нашем случае ST), при создании входящего параметра, необходимо установить флажок "Ось 0" на вкладке Массивы, поставить тип массива Byte. Тогда будет создан параметр типа ARRAY[*] OF BYTE. Что позволяет установить связь с выходным параметром Response в COMPortByteSync. Ну а дальше уже в скрипте можно разобрать посылку. И вот тут появился новый вопрос, как преобразовать например массив из 4 байт в число типа Real ?
Прибор присылает массив 41 байт.
[41, 225, 245, 6, 1, 243, 47, 206, 55, 204, 12, 26, 9, 0, 0, 154, 153, 153, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 163, 59, 0, 0, 0, 0, 0, 15]
5-8 байты - Тепловая энергия. [243, 47, 206, 55]. Формула для преобразования будет такой: B3*(2^24) + B2*(2^16) + B1*(2^8) + B0. Чтобы не изобретать велосипед, какие встроенные функции позволяют сделать это в MS4D ?
Пытались DWORD_OF_BYTE (OSCAT) затем DWORD_TO_REAL использовать, но результат совсем не тот, что ожидается.





Ответить с цитированием
