三菱 PLC 命令 32位 比较 指令[ D<> K8B200 K0 ]怎么解释?

三菱 PLC 命令 32位 比较 指令[ D<> K8B200 K0 ]怎么解释?,第1张

K8B200是bit位(比如Y,X,M)200开始的32位bit位,比如K8X200就是X200-X207,X210-X217,X 220-X227,X230-X237比较与0不相等。其中的B代表Bit位。

也许你看一下比较指令你就明白了
CMP
D0
D1
M
对这行不是很专业说的不好不要骂我
比较指令是这样的
当D0>d1时M0
=1
当D0<D1时M1=1当D0=D1时M2=1

在三菱plc编程时,大部分指令通过点击工具栏中符号或者直接输入就可以,但有些指令却比较复杂,需要一些特殊符号,详细步骤:

1、编写一个计数程序,当C0小于5时Y0输出,当C0大于8时Y1输出,当C0等于15时Y2输出。

2、首先需要输入应用指令,一种方法是直接按F8键,另一种方法是直接在工具栏中点击“应用指令”符号,或者直接双击鼠标,选择应用指令符号。

3、选择应用指令符号后。在符号后方框输入“>K5 C0“,注意之间需要输入空格。否则会提示错误信息。

4、将触点比较指令输入之后,需要跟随输出指令,才能完成一步程序,我们将其以Y0输出。

5、然后根据具体程序输入其它比较条件,并跟随输出指令。

6、当启动程序后,当C0计数小于5时Y0输出,当C0计数大于8时Y1输出,这样即完成了C0计数的比较指令。

在三菱PLC中,VAR_LN_OUT是一个指令,它用于将多个本地变量的数据传输到一个缓冲区中。这些本地变量可以由不同的数据类型(比如,整数、浮点数等)和不同的地址表示。因此VAR_LN_OUT指令并不要求这些变量具有相同的数据类型,也可以位于不同的内存地址上。
当然,在使用VAR_LN_OUT指令时,需要注意以下几点:
1 所有变量的大小之和不能超过缓冲区的大小;
2 要确保每个变量位于正确的内存地址上;
3 如果需要将字符串复制到缓冲区中,则需要使用STRCPY指令而不是VAR_LN_OUT指令。
综上所述,VAR_LN_OUT指令传输的多个本地变量可以拥有不同数据类型和内存地址,但需要满足以上几点要求。

根据不同的输入类型,输入X0可以用一个或多个位来表示,具体的位数取决于不同的输入类型。 例如,如果输入类型是整数类型,则可以使用16位(2个字节)来表示X0;如果输入类型是实数类型,则可以使用32位(4个字节)来表示X0;如果输入类型是字符类型,则可以使用8位(1个字节)来表示X0等。

CMP   D0   D2   M0该指令为比较道指令,将比较的结果回<,=,>三种结果分别告知给M0,M1,M2。

如果D0>D2,M0=1,如果D0=D2,M1=1,如果D0<D2,M2=1,所以使用这个指令会连续占用以M0为首的三个连续的位地址。

CMP用于16位数据比较,比较的数据范知围是-32768到+32767,比较数据类型可以是常熟K,H等,可以是数据寄存器D,也可以是计数器C,可以是时间继电器T,还可以是连续的位址(如K1X0,K2Y0,K3M0,K2S0等)。


扩展资料:

CF=1 则说明了有进位或借位,cmp是进行的减 *** 作,故可以看出为借位,所以,此时oprd1<oprd2

CF=0 则说明了无借位,但此时要注意ZF是否为0,若为0,则说明结果不为0,故此时oprd1>oprd2

当有符号时:若SF=0,OF=0 则说明了此时的值为正数,没有溢出,可以直观的看出,oprd1>oprd2;若SF=1,OF=0 则说明了此时的值为负数,没有溢出,则为oprd1<oprd2

若SF=0,OF=1 则说明了此时的值为正数,有溢出,可以看出oprd1<oprd2;若SF=1,OF=1则说明了此时的值为负数,有溢出,可以看出oprd1>oprd2

最后两个可以作出这种判断的原因是,溢出的本质问题:两数同为正,相加,值为负,则说明溢出;两数同为负,相加,值为正,则说明溢出;故有,正正得负则溢出,负负得正则溢出

参考资料:

百度百科——CMP指令


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/13283908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-07
下一篇 2023-07-07

发表评论

登录后才能评论

评论列表(0条)

保存