Skornyakov а при чем тут NaN ? это не для целых. Если получаете целое, можете просто проверять старший бит и подставлять 0 через SEL.
Skornyakov а при чем тут NaN ? это не для целых. Если получаете целое, можете просто проверять старший бит и подставлять 0 через SEL.
Спасибо, но проблема в том, что число считывается в виде Nan: там уже нет ни числа, ни знака.
Skornyakov считывается откуда? и как? в ОЛ нет понятия отрицательного числа для целочисленной в принципе. Каким-таким образом вы умудряетесь считать NaN, которое только для дробных числе возможно?
Считываю переменную modbus slave панелью оператора. Тип переменной ставлю знаковое целое 32бит. Все считывается. Теперь надо сделать то же с овен пр103. Ставлю целое, но когда в slave устройстве появляется минус, вместо числа наблюдаются звездочки. Возможно, это не Nan но и не число точно. Минус отбросить не получается. Пусть в овне нет понятия отрицательного числа для целочисленной, как получить положительные значения.
Modbus устройство - это промышленные весы.весы
Skornyakov ну вам пример выше привели, как при старшем бите сделать 0.
32 бит тем более надо раскидать на два регистра, если вы говорите о 32-х битной переменной в панель.
ПР103 у вас слейв для панели или вы говорите уже о другой связке приборов? конкретику выкладывайте, а то одно хочу тут, а другое там, вы так только путаете всех.
Возможно вам вообще надо по другому действовать. есть такое подозрение...
так и думал... вы при помощи ПР103 опрашиваете Весы (панель это другая связка)...
Спасибо, за ответы. Прошу прощения, если выразился непонятно. Операции с числом в виде звездочек не производятся. То, что предложили в примере выше у меня не сработало. Я записывал faulse в бит 31.
А я не понял, где вы в Лоджике звездочки нашли? В панели звездочки появляются, если число выходит за заданный диапазон (т.е. в поле по количеству разрядов не помещается)
Пример. Вы в панели задали целое знаковое от -1000 до 1000, т.е. 5 разрядов (если знак считать). Но, на самом деле, числу, например, -1000 соответствует число 4294966296 в дополнительном коде. Далее, вы просто обнуляете 31 бит и получаете 2147482648. Т.е. 10 разрядов (а у вас на поле всего пять). Не удивительно, что панель звездочки показывает
Последний раз редактировалось Dimensy; 16.06.2025 в 18:48.
Спасибо, завтра попробую.
А как вы в ПР передаёте считанное с весов 32 битное целое на панель (т.е. как выглядит связка: переменная мастера - переменная слейва)?
Звёздочки на панели - это обычно признак того, что значение вышло за границы разрешённого диапазона (ограниченного типом переменной либо специально заданными значениями для этого поля вывода)