wzy4828
風流雖能驚天下,唯有悶騷動世人
級別: 家園常客
![]() |
圖片:
![]()
圖片:
![]() 用RS指令將PLS數據傳送到數碼管顯示,當數據超過32767就不能正確顯示,但是查看寄存器(寄存器的值是正確的,后面的數據卻不對<數碼管顯示的居然是這個后面的數據>),寄存器最高位置1表示是負數(怎么解決這個矛盾?)如果手動設置一個超過32767的數字就能正確顯示,求教怎么解決?我另外設置兩個都超過±32767的值再傳送都能正確顯示,就是從PLS傳送過來的數據不能正確顯示超過±32767的值 在監控梯形圖下面PLS顯示的數據也是正確的,就是傳送到數碼管就不行!數碼管只能用8位模式,modbus協議 [ 此帖被wzy4828在2024-12-10 16:15重新編輯 ] |
---|---|
|
wzy4828
風流雖能驚天下,唯有悶騷動世人
級別: 家園常客
![]() |
找到原因了,負數寄存器用的是二進制補碼,要想讓數碼管正確顯示,需要逆向補碼,先減一再取反,這樣得到的二進制碼就能在數碼管正確顯示了。(貌似這種方法最大只能滿足-65535) |
---|---|
|