回复:关于300里指令INVI/NEGI的实际作用

老学童

  • 帖子

    782
  • 精华

    32
  • 被关注

    67

论坛等级:奇侠

注册时间:2011-06-22

黄金 黄金 如何晋级?

发布于 2015-03-17 18:25:06

2楼

从楼主的问题不难看出,楼主是位有追求的编程高手。
关于INVI(取反码)指令,楼上LJCLWYF大侠给了一个经典例子,这里就不赘述。
个人认为西门子PLC的大部分指令除了具有其本身的“数学”功能外,更多地用于逻辑控制,NEGI(16位整数补码)指令也不例外,这里举一个NEGI在寻址中的应用:
当某些数据值及其符合具有不同的含义时,例如:1,2,3,-4,-5...(值为轴编号,正号表示直线轴,负号表示旋转轴,在HMI上显示坐标时直线轴后面单位为mm或in即毫米或英寸,而旋转轴后面的单位为dg即度),当需要用数据值来寻址时,可以用NEGI结合JP指令进行逻辑控制:
...
L DBW [AR1,P#0.0]; //将轴编号(正值为直线轴,负值为旋转轴)装载到ACCU1
NEGI ; //在ACCU 1-L形成16位数值的二进制补码
JP e003; //如果大于0(即原值为负值),跳转至e003
TAK ; //切换ACCU1与ACCU2
e003: SLW 2; //左移2位(相当于乘以4),在此为每个数据的宽度或偏置
+ 174; //源数据首地址
SLW 3; //左移3位形成数据区域地址
LAR1 ; //将数据区域地址装载至地址寄存器1
L DBD [AR1,P#0.0]; //将源数据装入累加器1
T DBD [AR2,P#0.0]; //存入目标数据块的目标地址
...
在此NEGI起到了2个作用,
1)NEGI指令通过CC1和CC0状态位为JP指令判断正负提供依据;
2)将负值转换为正值,以便后续的寻址计算。
人的生命似洪水在奔流,不遇着岛屿、暗礁,难以激起美丽的浪花。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54796条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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