大家好,今天讲解PLC的指令是加减乘除,相信看完后大家会有所收获,关注达达老师,每天进步一点点
数字运算指令
加、减、乘、除指令
加法减法
IN1+IN2=OUT IN1--IN2=OUT
整数加法(+I)或者整数减法(--I)指令,将两个16位整数相加或者相减,产生一个16位结果。双整数加法(+D)或者双整数减法(--D)指令,将两个32位整数相加或者相减,产生一个32位结果。实数加法(+R)和实数减法(--R)指令,将两个32位实数相加或相减,产生一个32位实数结果。
乘法除法IN1*IN2=OUT IN1/IN2=OUT LAD和
整数乘法(*I)或者整数除法(/I)指令,将两个16位整数相乘或者相除,产生一个16位结果。(对于除法,余数不被保留。)双整数乘法(*D)或者双整数除法(/D)指令,将两个32位整数相乘或者相除,产生一个32位结果。(对于除法,余数不被保留。)实数乘法(*R)或实数除法(/R)指令,将两个32位实数相乘或相除,产生一个32位实数结果。
SM标志位和ENO
SM1.1表示溢出错误和非法值。如果SM1.1置位,SM1.0和SM1.2的状态不再有效而且原始输入操作数不会发生变化。如果SM1.1和SM1.3没有置位,那么数字运算产生一个有效的结果,同时SM1.0和SM1.2有效。在除法运算中,如果SM1.3置位,其它数学运算标志位不会发生变化。
下面举例说明整数运算,如图所示
假设AC0中存入的数值是60,AC1中存入的数值是40,VW100中存入的数值是20,VW200中存入的数值为4000,VW10 中存入的数值为20,那么其运算结果为
实数运算如图所示
运算结果如图
整数乘法产生双整数和带余数的整数除法
整数乘法产生双整数
IN1 * IN2 = OUT
整数乘法产生双整数指令(MUL),将两个16位整数相乘,得到32位结果。在STL的MUL指令中,OUT的低16位被用作一个乘数。
带余数的整数除法
IN1 / IN2 = OUT
带余数的整数除法指令(DIV),将两个16位整数相除,得到32位结果。其中16位为余数(高16位字中),另外16位为商(低16位字中)。
SM标志位和ENO
对于在本页中介绍的两条指令,特殊存储器(SM)标志位表示错误和非法值。如果在除法指令执行时,SM1.3置位,其它数字运算标志位不会发生变化。否则,当数字运算完成时,所有支持的数字运算状态位都包含有效状态。
运算实例如图
PS:VD100包含:VW100和VW102,而VD200包含:VW200和VW202。
递增和递减指令
递增
IN+1=OUT
递减
IN -- 1=OUT
递增或者递减指令将输入IN加1或者减1,并将结果存放在OUT中。字节递增(INCB)和字节递减(DECB)操作是无符号的。字递增(INCW)和字递减(DECW)操作是有符号的。双字递增(INCD)和双字递减(DECD)操作是有符号的。
操作实例如下:
今天你学会了吗?关注达达老师,每天进步一点点,你会有所收获。
閱讀更多 噠噠與達達 的文章