У меня на версии Owen Logic2.10.366 всё заработало, на Виндовс 7 (32 бит)
Версия 2.10.366.0 проект для ПР225:
Константа (целочисленное) - связь - сетевая переменная(целочисленное)
При установленном значении более 9999 преобразуется (переполняется) и в окне просмотра переменных другое число.
Пример 9999 ->9999, а 99999 -> 34463
Скрин:
Последний раз редактировалось jereghi1979; 21.04.2025 в 13:58.
Сетевые переменные - 2-х байтные. Максимальное значение = 65535. 99999 - 65536 = 34463
Последний раз редактировалось EFrol; 21.04.2025 в 14:33.
Да - это такой прикол. В программе целочисленные значения типа UDINT(4 байта), а в сетевых переменных целочисленные UINT(2 байта). Причем если из программы переменную привязать в сетевые, то никакой ошибки не будет, просто при значении больше 65535 будет в сетевой переменной мусор.
Нигде про это не написано, разбирайтесь сами с такими багами.
Для меня ПР исчезли навсегда как приборы после обнаружении такой фичи.
Последний раз редактировалось Николай Суриков; 21.04.2025 в 15:59.
Насколько знаю: в режиме мастер ПР умеет работать с 32 битными сетевыми переменными, в режиме слейв - надо вручную разделять 32 битную переменную на два смежных регистра!
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
В справке написано что есть три типа данных - булевые, целочисленные и вещественные, так же написано что нет неявного преобразования из одного типа в другой.
Значит если одну переменную можно привязать к другой и проект компилируется без ошибок, значит они имеют одинаковый тип, но это не так, в слейве целочисленные это UINT.
Значит это баг и притом нигде про него не написано (возможно ошибаюсь, поправьте).
В режиме слейв 32 битная целочисленная внутренняя переменная обрежется до 16 младших бит, для правильной передачи надо вручную разделить на два смежных регистра, вроде об этом много разговоров было, поэтому я запомнил, где это написано не знаю, может потом допишут, если ещё не написали или добавят поддержку работы с такими переменными в режиме слейв.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Извините, я не хочу к вам цепляться, но как разделить одну переменную 4 байта на две по 2 байта если в ПР нет переменных по 2 байта?))
Получается мы делим VAR1 (UDINT) на две VAR2 и VAR3 тоже UDINT и потом так же через баг лоджика присваиваем к сетевым переменным UINT.
Далее выходит "обновление" (которые уже стали выходить каждую неделю) и все проекты полетят.