Вообще странно что принимается массив Word а не byte например.
интересно, а 32-х битные операции вообще вашим контроллером поддерживаются ?, если нет, то вы как ни пляшите, многого от него не получите.
з.ы. вряд ли тут кто-то начнет изучать ваш контроллер, чтобы обяснить возможно то что вы хотите или нет и если возможно то как это сделать. Ищите профильный форум по своему контроллеру или обращайтесь в тех поддержку производителя контроллера
Язык программирования поддерживает мировые стандарты (EC61131-3): IL, ID, SFC - думаю, что надо копать в сторону SFC и тут может помогу с кодом, так как в CDS такой язык присутствует.
IL в CDS нет, тут больше смогут помочь кто для Сименса пишет, хотя именно спеца по IL найти думаю будет сложновато., ID вообще первый раз слышу, что это
Последний раз редактировалось melky; 02.04.2016 в 09:19.
cer_cer, вы бы лучше посоветовали что-нибудь дельное, а ёрничать мы все умеем... Массив в PLC приходит, и приходит в том виде, как положено двумя Word-ами, как Вы выразились, точно так-же, как я вижу в конфигураторе к ОВЕНу, ничего лишнего. А в том, что в ПО к GLOFA G7 нет нормальных способов удобно преобразовать данные из массива в число - не моя же вина, правда? Был бы контроллер ОВЕН-ом, вопросов бы не было, в CoDeSys-е все просто и удобно, а Вы опробуйте в GMWIN...
поддерживаются IL, LD, FB
я пишу в LD
32-х битные операции поддерживаются. А контроллер изучать и не надо, я просил подсказать метод...
В ПО к контроллеру реализовано несколько функций для работы с modbus, две из них для чтения, одна выдает массив bool, вторая word. Ковертеры массивов есть, но они все конвертируют в массив, кроме одного, который конвертирует в строку
в GMWIN есть стандартная функция ARY_WORD_TO_STRING, но на выходе охинея, которая ни во что не конвертируется...
в массиве ARY_WORD 2 слова по 2 байта, данные в Hex, если я после ARY_WORD_TO_STRING делаю STRING_TO_WORD, на выходе 0, ошибку не выдает.
то же самое, с STRING_TO_BYTE
после ARY_WORD_TO_STRING делаю STRING_TO_ARY, на выходе массив байтовый ARY_BYTE, проверил по-байтно данные совпадают, значит в STRING не охинея, как то можно оттуда данные достать....