我是靠谱客的博主 想人陪网络,最近开发中收集的这篇文章主要介绍第五章:(2)S7-200 SMART PLC基本指令,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

位逻辑

在这里插入图片描述
在这里插入图片描述
关于置位和复位指令是这样用的:上面那个bit写地址,下面的N是写你要连续置位或者复位的位数。例如下面的那个梯形图,他是从Q0.0开始,连续置位两位,也就是从Q0.0开始到Q0.1,两位都置一,然后下面的R也是,从这个脉冲开始,连续两位置零。

置位优先和复位优先双稳态触发器指令

在这里插入图片描述
这个和数电那个RS触发器是一样的
bit是地址,然后看表格
SR置位优先

RSbitOUT
1111
0111
1000
00不变不变

RS复位优先

RSbitOUT
1100
0111
1000
00不变不变

根据表格我们不难看出来,你看在SR置位优先的时候,我是S优先的,所以当我S作用的时候R是没有用的,只有当我S为0了,你R才起作用。
同样的,在RS复位优先的时候,我只有在R等于0时我的S才能起作用。

立即IO指令

立即指令就是不用等到CPU的扫描,执行后立即刷新或者采集输入,这样的速度就非常快了,因为是对物理输入点直接存取的
立即输出指令
只能用于输出继电器Q,执行命令时立即执行。
注意:立即IO指令是通过直接访问物理输入输出点的,比一般指令访问输入/输出映像寄存器占用CPU的时间要长,所以不要乱用立即指令,不然会增加程序响应时间。
立即置位和立即复位指令
其实和之前的线圈是一样的,不同的就是立即两个字而已
只能用于输出Q,从指令开始操作的那个地址开始连续N个地址被立即置位或者立即复位并保持,N的取值范围为1-255,执行后,新值被同时写到物理输出点和相应的输出映像寄存器

取反指令和空操作指令

1.取反指令(NOT)
将其左边的结果取反,例如一个常开触点,经过取反之后就变成了1,再往下一级传输
2.空操作指令(NOP N 【N取1-255】)
这个对程序是没有影响的,相当于C语言里的空函数,在程序设计之初留下空白用的.

正负跳变指令(上升沿和下降沿)

分为两个:
-|P|-是正跳变指令,就是上升沿触发,当上升沿到来的时候,产生一个宽度为一个扫描周期的脉冲
-|N|-是负跳变指令,就是下降沿触发,当下降沿到来的时候,产生一个宽度为一个扫描周期的脉冲

定时器指令

接通延时定时器(TON)

在这里插入图片描述
这个接通延时寄存器你可以理解为,我IN输入,PT是设定值,然后例如我这里是PT=50,50x100ms就是五秒钟,I输入开始计数,记够五秒钟我就向外输出一个脉冲,但是如果这个时候I不断电我就会一直记数,直到最大值32767,在这期间,T还是保持ON的状态,到32767就自动断开了。
如果我I断电了,那就复位归零,马上断开

保持型接通延时定时器(TONR)

在这里插入图片描述
这个和之前那个最大的区别就是他断电后不会自己置零,而是累加一直到32767也不会掉下来,就会一直保持ON的状态。直到直到我外部给他一个复位信号,就是I0.1那个复位开关,按一下线圈产生复位脉冲,T3这时候才置零。

计数器(C0-C255)(数据类型为INT整数)

增计数器(CTU)

首次扫描时,计数器位为OFF,置零。LD端是脉冲输入,来一个脉冲计一个数,PV是设定值,记到PV就整体输出为1,然后R是复位键,R来一个脉冲就置零。

减计数器(CTD)

一样的,只是首次扫描时,计数器位为0,当前值设定为PV值,然后来一个脉冲就往下减,减到0整体置1.

增减计数器(CTUD)

对比普通的只有加或减的计数器他有一个比较特别的地方
有CU和CD两个脉冲输入端,还有个R和PV是一样的
脉冲嘛,就加到哪里就相应地增减就可以了
但是!!!当记到最大数32767的时候,再加1就变成了-32768(16进制的#8000)当记到最小的数-32768的时候下一个再减就变成了最大值32767
为什么是32767呢,因为PLC每个地方都分配了16bit的空间,刚好16位数然后最高位是符号位,那剩下的15位就2的15次方就是32768.

比较指令

在这里插入图片描述
按照需求不同可以分为不同的比较。这个就不多讲了。
(书P127)

移位寄存器指令

在这里插入图片描述

这是书上的说法,但是我觉得这个有点抽象,不好理解。所以看下面的例子。
这是一个用移位寄存器控制的8盏小灯每隔3秒点亮,全亮3秒后全灭然后再循环。类似于一个流水灯吧大概是这样一个意思。
在这里插入图片描述

看这个例子,EN是使能位,这里的T37是作为脉冲发生器使用的,稳定隔3秒钟发送一个脉冲给移位寄存器。然后呢DATA位是数据输入口,这个程序用的是M0.0的数据,你可以看到M0.0在开头是被置一了的,所以他这里数据输入源永远是1.然后呢S_BIT就是要移动的地址了,N是移位寄存器的长度。
还有一个MOV_B拓展以下,是赋值指令。移动字节指令将输入字节移至输出字节,不改变原来的数值。所以说可以看到IN是0,OUT是VB100,就是把0移到VB100,相当于就是置零了。EN是输入端,ENO是输出端

移位寄存器最高有效位地址的计算

在这里插入图片描述
这是书上的算法,其实可以不用记公式,靠常识就能解决这个问题
我们抛开公式不看,你看啊按照书上的例题
V33.4往上移N=14位,那最终值是多少呢?
每一个字节里面有8个位
例如V33里面就有V33.0、V33.1…V33.7
那么我V33.0移8位是V33.7,V33.0移16位就是V34.7
那V33.0移14位呢?就是V34.5
所以我V33.4移14位就是V34.5移4位,V34.6、V34.7、V35.0、V35.1
这就是答案
所以不用去记公式的,这样就能推出来。

顺序控制指令SCR

这个看书P131,就不讲了。

最后

以上就是想人陪网络为你收集整理的第五章:(2)S7-200 SMART PLC基本指令的全部内容,希望文章能够帮你解决第五章:(2)S7-200 SMART PLC基本指令所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部