外围设备的16位整数的补码与西门子NEG指令

已锁定

昔日如诗

  • 帖子

    826
  • 精华

    3
  • 被关注

    10

论坛等级:侠圣

注册时间:2018-04-17

钻石 钻石 如何晋级?

外围设备的16位整数的补码与西门子NEG指令

1681

4

2023-12-08 10:19:01

    外围设备的数据是INT16类型的补码,比如0xCD93实际是指-12909。

    我查了西门子手册,只有一个指令NEG跟补码有关,但是闹不清它是把外围设备的补码转成它可以识别的十进制,还是把外围设备的原码转成它自己的补码。我被绕晕了。

    由于外围设备发来的是16位整数,我就用博图里的word数据块来接收,但是闹不清此word会以补码,还是会以原码、反码的形式保存接收下来的这个整数。

    如果博图的Word数据块以补码的形式保存了一个数据,那么怎么转换成实数?

    如果博图的Word数据块以反码的形式保存了一个数据,那么怎么转换成实数?

    如果博图的Word数据块以原码的形式保存了一个数据,那么怎么转换成实数?

    是一定要转换成实数的,因为它最张得除以100,才能成为人类可以理解的物理意义,比如电流、电压和压力等等。

--------------------------------------------

   以4位整数为例(16位的道理一样)来说原码、反码和补码: 

   比如HMI发来-2这个数字,其实是发来1010这个一串开关量。第一个1表示负数,后面的010表示2。

   博图的word块(假设是4位的)接收到后,如果保存格式是原码,则是1010,

   如果保存格式是反码,则是0101(与原码完全相反).

   如果保存格式是补码,则是0110。这个数字是反码加上1,即0101+0001=0110。



    

外围设备的16位整数的补码与西门子NEG指令 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15112条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。