85022122
级别: 正式会员
精华主题: 0
发帖数量: 54 个
工控威望: 95 点
下载积分: 1046 分
在线时间: 8(小时)
注册时间: 2025-04-07
最后登录: 2025-08-20
查看85022122的 主题 / 回贴
楼主  发表于: 6天前
传送的是-3000,到这里就变成了62536了,不知道什么原因
85022122
级别: 正式会员
精华主题: 0
发帖数量: 54 个
工控威望: 95 点
下载积分: 1046 分
在线时间: 8(小时)
注册时间: 2025-04-07
最后登录: 2025-08-20
查看85022122的 主题 / 回贴
1楼  发表于: 6天前
图片:
再传一次图片
冠军欧洲
级别: 略有小成
精华主题: 0
发帖数量: 224 个
工控威望: 317 点
下载积分: 2703 分
在线时间: 731(小时)
注册时间: 2018-10-19
最后登录: 2025-08-20
查看冠军欧洲的 主题 / 回贴
2楼  发表于: 6天前
传送的时候要用DMOV,定位指令也用双字DDRVA
楼主留言:
按照您的方法试了下果然正常,再次感谢您!
本帖最近评分记录:
  • 下载积分:+1(85022122)
  • 下载积分:+1(guochunyi) 热心助人!
    eq8zw5xb
    级别: 略有小成
    精华主题: 0
    发帖数量: 78 个
    工控威望: 208 点
    下载积分: 210 分
    在线时间: 10(小时)
    注册时间: 2025-07-02
    最后登录: 2025-08-20
    查看eq8zw5xb的 主题 / 回贴
    3楼  发表于: 6天前
    如果你把这个补码  当作 无符号整数(unsigned short) 来看,它的值就是:

    这就解释了为什么你传送的是 -3000,但接收到的是 62536 ——因为在接收端,它被当作了 无符号整数 来解释。
    楼主留言:
    感谢您的耐心指导!
    本帖最近评分记录:
  • 下载积分:+1(85022122)
  • 下载积分:+1(guochunyi) 热心助人!
    1105250205
    级别: 家园常客
    精华主题: 0
    发帖数量: 70 个
    工控威望: 636 点
    下载积分: 777 分
    在线时间: 112(小时)
    注册时间: 2021-07-21
    最后登录: 2025-08-20
    查看1105250205的 主题 / 回贴
    4楼  发表于: 6天前
    mov是单字,但d=是双字。符号位不对,自然显示的数据也就不对
    楼主留言:
    感谢您的耐心指导
    本帖最近评分记录:
  • 下载积分:+1(85022122)
  • 下载积分:+1(guochunyi) 热心助人!
    dalao123
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 875 个
    工控威望: 1033 点
    下载积分: 10599 分
    在线时间: 560(小时)
    注册时间: 2011-05-29
    最后登录: 2025-08-19
    查看dalao123的 主题 / 回贴
    5楼  发表于: 5天前
    引用
    引用楼主85022122于2025-08-15 16:23发表的 诸公请教下,给D传了个负数,到这里数值变了怎么回事呢 :
    传送的是-3000,到这里就变成了62536了,不知道什么原因

    用dmov 就不会出问题,不要用mov,,因为你没有理解mov数据地址的范围。
    楼主留言:
    谢谢的指导,我马上把MOV的数据地址范围再仔细学习下
    本帖最近评分记录:
  • 下载积分:+1(85022122)
  • 下载积分:+1(guochunyi) 热心助人!
  • plc
    wzy4828
    风流虽能惊天下,唯有闷骚动世人
    级别: 家园常客
    精华主题: 0
    发帖数量: 67 个
    工控威望: 544 点
    下载积分: 2733 分
    在线时间: 59(小时)
    注册时间: 2024-01-16
    最后登录: 2025-08-19
    查看wzy4828的 主题 / 回贴
    6楼  发表于: 5天前
    这是PLC寄存器的一种机制,16位寄存器运算结果为负数时,寄存器监视看到的是补码后的二进制(-3000补码后的二进制转换成十进制就是62536)。运算过程为:把3000的二进制000101110111000取反→1111010001000111再+1→1111010001001000→转换成十进制→62536
    楼主留言:
    感谢您给出如此详细的指导,向您致以崇高的敬意!再次感谢您
    本帖最近评分记录:
  • 下载积分:+1(85022122)
  • 下载积分:+1(guochunyi) 热心助人!
    wzy4828
    风流虽能惊天下,唯有闷骚动世人
    级别: 家园常客
    精华主题: 0
    发帖数量: 67 个
    工控威望: 544 点
    下载积分: 2733 分
    在线时间: 59(小时)
    注册时间: 2024-01-16
    最后登录: 2025-08-19
    查看wzy4828的 主题 / 回贴
    7楼  发表于: 5天前
    必须要理解和掌握这种机制,PLC在和8进制(准确的说应该是8位机)仪器通讯的时候,要进行频繁的转换。
    楼主留言:
    感谢您,PLC也是8进制和8进制仪器设备通讯的时候频繁的转换这个原理我还明白
    [ 此帖被wzy4828在2025-08-16 22:53重新编辑 ]
    本帖最近评分记录:
  • 下载积分:+1(85022122)
    85022122
    级别: 正式会员
    精华主题: 0
    发帖数量: 54 个
    工控威望: 95 点
    下载积分: 1046 分
    在线时间: 8(小时)
    注册时间: 2025-04-07
    最后登录: 2025-08-20
    查看85022122的 主题 / 回贴
    8楼  发表于: 5天前
    昨天下午我搞了好久都没想明白的问题,再这里诸位大佬耐心细心的接到帮助我解决了问题!再次感诸位大佬!我想说有你们真好!以后我也会尽量的帮助他人,传递爱心
    如花花一样的
    级别: 正式会员
    精华主题: 0
    发帖数量: 29 个
    工控威望: 88 点
    下载积分: 373 分
    在线时间: 77(小时)
    注册时间: 2021-10-12
    最后登录: 2025-08-20
    查看如花花一样的的 主题 / 回贴
    9楼  发表于: 5天前
    单字节16位,双字节32位,占用地址不一样显示不一样的
    cvlsem
    每天学一点!赚积分第一!
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 650 个
    工控威望: 1512 点
    下载积分: 1182 分
    在线时间: 180(小时)
    注册时间: 2016-05-14
    最后登录: 2025-08-20
    查看cvlsem的 主题 / 回贴
    10楼  发表于: 4天前
    注意一下细节  单字 和双字范围  。。。。。。有符号 和无符号  的区别
    不懈努力,一切皆有可能...冲吧 少年
    空QQ群:4057363
    :赠人玫瑰    手留余香!