meiliang212
级别: 略有小成
精华主题: 0
发帖数量: 79 个
工控威望: 201 点
下载积分: 965 分
在线时间: 18(小时)
注册时间: 2017-03-21
最后登录: 2019-10-08
查看meiliang212的 主题 / 回贴
楼主  发表于: 2018-01-05 08:24
比如D0 中的数值是21345643

怎么取出他的后四位 就是5643

请高手解答下  

谢谢
john42tw
级别: 网络英雄
精华主题: 0
发帖数量: 1276 个
工控威望: 6107 点
下载积分: 52046 分
在线时间: 1120(小时)
注册时间: 2012-04-24
最后登录: 2024-03-06
查看john42tw的 主题 / 回贴
1楼  发表于: 2018-01-05 08:31
1.D0 範圍  -32768~32767

2. 除10000 取餘數。
楼主留言:
谢谢你 ,只能到32767吗?我的产品数量很大怎么办?比如21345643那要怎么操作
john42tw
级别: 网络英雄
精华主题: 0
发帖数量: 1276 个
工控威望: 6107 点
下载积分: 52046 分
在线时间: 1120(小时)
注册时间: 2012-04-24
最后登录: 2024-03-06
查看john42tw的 主题 / 回贴
2楼  发表于: 2018-01-05 10:07
引用
引用第3楼meiliang212于2018-01-05 09:23发表的  :
谢谢你们   只能到32767吗?我的产品数量很大怎么办?比如21345643,那要怎么转换?

1.多大?
2.PLC型號?
john42tw
级别: 网络英雄
精华主题: 0
发帖数量: 1276 个
工控威望: 6107 点
下载积分: 52046 分
在线时间: 1120(小时)
注册时间: 2012-04-24
最后登录: 2024-03-06
查看john42tw的 主题 / 回贴
3楼  发表于: 2018-01-05 15:41
图片:
引用
引用第8楼meiliang212于2018-01-05 14:37发表的  :
我试了,模拟运行了我上传了图片,我在监看窗口给D0赋值在D0等于32767之前都正常,直到我给D1赋值1 时

所有寄存器都变了 请看图,32位 D0和D1 一起不就是应该显示132767

请解答
.......


當然不是

要先弄清楚PLC (或其他電子)數據,都是以2進制儲存。以10 (16)進制顯示。

基本上1個暫存器 (D0) 占16位置 16Bit 。稱16位元。

0000  0000  0000  0000 = 0
0000  0000  0000  0001 = 1
........................................
........................................
01111  1111  1111  1111 = 32767

第16Bit 若為0 表示正,若為1 表示负



同理 32位元 D1 D0
                
                  D1                                             D0
    0000  0000  0000  0000          0000  0000  0000  0000 = 0

如圖所示 D1 = 1    D0 =32767

                 D1                                             D0
    0000  0000  0000  0001      01111  1111  1111  1111 =   98303