test什么意思(test什么指令)
三菱FX5U的PLC指令中,我注意到2个比较新颖的指令,至少西门子200PLC中是没有这样的指令的,所以特意写了一段程序,来和大家分享一下。
这2个指令是BSET指令和TEST指令,且这两个在FX3U的PLC指令表中是没有的!
BSET(字软元件的位设置),这里的SET就是置位的意思,对指定的字元件的指定位置1。
TEST(位测试),这个位测试叫法挺新的,因为做PLC的人做I/O测试的时候对DI/DO点的测试,也算是对位的测试。三菱中的这个TEST(位测试)其实算是读出一个字软元件中的某一位的状态,并把这个状态写到一个指定的位软元件中去!
先看一个图片吧:
M0接通三次时的程序截图
这个图片上边部分是SM402是一个初始脉冲,和西门子200PLC中的SM0.1一样,用来初始化程序,给D2一个二进制为2#1010 1010 1010 1010的初始值,给D0和D1的初始值都为0。
程序下边部分是BSET指令和TEST指令,还有一个INC指令,这个INC指令和西门子200PLC中的INC指令很像的,都是自加1指令,或者说是自增指令!---图片上为何都是MOVP,BSETP,TESTP,INCP,这些指令多一个P就代表是脉冲信号的意思!这里的M0第一次从off变为on的时候,三个指令都只执行一次!
这里先解释一下BSETP指令执行了3次,为何D1=7?
是因为D0的有效范围其实是十进制的0-15,因为BSET指令是字元件指令,所以16位中就是0-15。
在M0第一次为1时,D0=0,造成D1的值是2进制的2#0000 0000 0000 0001,而后下边的INCP指令执行才使得D0 1=0 1=1;
在M0第二次为1时,D0=1,造成D1的值是2进制的2#0000 0000 0000 0011,而后下边的INCP指令执行才使得D0 1=1 1=2;
在M0第三次为1时,D0=2,造成D1的值是2进制的2#0000 0000 0000 0111,也就是十进制的7,而后下边的INCP指令执行才使得D0 1=2 1=3;
所以BSET指令就是根据D0的值,把这个值看做是16位字长区域中的第几个位,然后将相应的位置位位1,因为是推进到下一位时,之前被置位的位依然是1!
再来看一个程序的动态监控图:
程序监控动态图片
这个动态图片主要用来说明TEST指令,上边我说给D2的初始值是2#1010 1010 1010 1010,这个点就是造成Y0一次接通一次断开的原因!
因为TEST指令就是D0为几时,就把D2的相关位的值写到Y0中去!需要说明的是这里的D0=1的时候,其实是D2的第0位,也就是D2.0的值;D0=3时,是要询问D2的第三位也就的D2.2的值!
以上就是三菱FX5U中的两个比较新颖的指令的简单介绍,感谢阅读!
-
FlicSmartbutton评论
2023-03-24 -
苹果iOS 14.6测试版发布!这是详细信息
2023-03-24 -
为什么用不了流量(联通明明有流量却用不了)
2023-03-23 -
Hannspree CT23H0B 安卓系统多合一评测
2023-03-23 -
金胜维固态硬盘怎么样(朗科ssd固态硬盘好不好)
2023-03-20 -
怎么上小程序(微信怎么上线自己的小程序)
2023-03-16 -
Lyft的共享储蓄服务可以提供更便宜的乘车服务 但是你需要走一点路
2023-03-13 -
推荐的应用程序插入启动器
2023-03-11 -
雷神电脑怎么样(笔记本电脑品牌前十名)
2023-03-11 -
您将无法使用 One UI 4.0 测试版的某些功能
2023-03-09 -
HandMarket应用程序 Store上线
2023-03-08 -
qq照片在哪里(苹果手机qq拍的照片在哪里)
2023-03-06 -
TrueCaller在v1.30中添加了新功能
2023-03-05 -
RIM暗示许可切换等
2023-03-05 -
手机APP教程篇:华为虚拟男友测试怎么弄
2023-03-01