А что, использовать INT религия не позволяет?
Теория и практика иногда сталкиваются. Когда это случается, теория проигрывает. Всегда. (Закон Линуса)
А еще полезней знать, что в общем случае BYTE, WORD, DWORD - это не то, чтобы беззнаковые переменные, а просто размер ячейки памяти. использовать их в АРИФМЕТИЧЕСКИХ выражениях - скажем так, не рекомендуется.
Поэтому - все зависит от их интерпретации, особенно в качестве регистра MODBUS.
Проведите эксперимент. INT_TO_WORD(-32768)=65535
в том-то и дело, что для ModBus оптимальнее всего передавать WORD, как мне объясняли. действительные числа (1-2 знака после запятой, -100 : +500 г.Ц., этого в большинстве случае для диспетчеризации хватает) сводятся к WORD, но, само собой, это REAL_TO_WORD не отменяет. про использование WORD в выражениях никто и не говорил)
Это понятно.
Просто зачем такие.... извращения, которые надо дополнительно както обрабатывать в драйвере/OPC/SCADA, когда проще рассматривать WORD как signed int и передавать в десятых или сотых долях градуса со знаком. Что логичней - все равно точность измерений как правило не больше
есть где-нибудь рабочая демка на пару регистров для MODBUS TCP Slave на SPK207 ?
все сделал как положено, мастером только взял MODBUS TESTER (от агростроя),
коннект есть по TCP (если отрубить панель, тестр теряет коннект) , а TESTER показывает одни "ошибка CRC"
пробовал команды 03, 04, 16 (с 0х0000 по 0x000A, и 1 и 10 регистров WORD) - везде одно и тоже - "ошибка CRC"
codesys 3.5.5.0