6SL3210-1KE32-1AB1现货西门子代理
- 供应商
- 湖南西控自动化设备有限公司
- 认证
- 西门子
- G120C
- 变频器
- 110KW内置A级滤波版
- 德国
- 3AC 380-480V滤波A级
- 手机号
- 17838383235
- 经理
- 徐嘉泉
- 所在地
- 中国(湖南)自由贸易试验区长沙片区开元东路1306号开阳智能制造产业园(一期)4#栋301
- 更新时间
- 2024-10-21 08:50
4.[step4] plc调试
将图2-7所示的梯形图程序经编译下载到plc后,可以进行在线监控如图2-8所示。需要注意的是sb2急停按钮在接线上是常闭触电,因此在梯形图编程中画的是常开,正常情况实际的在线监控也是接通的,只有当按下急停按钮后,i1.0信号才断开。
图2-8 在线监控示意2.2 定时器与时钟存储器
2.2.1 定时器种类
使用定时器指令用以创建可编程的延迟时间,表2-3所示为s7-1200的定时器指令,常用的为如下4种定时器:
1)tp:脉冲定时器可生成具有预设宽度时间的脉冲。
2)ton:接通延迟定时器,输出q在预设的延时过后设置为on。
3)tof:关断延迟定时器,输出 q在预设的延时过后重置为off。
4)tonr:保持型接通延迟定时器,输出在预设的延时过后设置为on。在使用 r输入重置经过的时间之前,会跨越多个定时时段一直累加经过的时间。
表2-3 定时器指令2.2.2 ton指令
ton指令就是接通延迟定时器输出q在预设的延时过后设置为on,其指令形式如图2-9所示,参数及其数据类型如表2-4所示。参数 in从 0 跳变为 1 将启动定时器ton。
图2-9 ton指令
表2-4 ton参数及数据类型pt(预设时间)和 et(经过的时间)值以表示毫秒时间的有符号双精度整数形式存储在存储器中(表2-5所示)。time数据使用 t#标识符,可以简单时间单元“t#200ms”或复合时间单元“t#2s_200ms(或t#2s200ms)”的形式输入。
表2-5 time数据类型
如图2-10所示,在指令窗口中选择“定时器操作”中的ton指令,并将之拖入到程序段中(图2-11),这时就会跳出一个“调用数据块”窗口,选择自动编号,则会直接生成db1数据块;也可以选择手动编号,根据用户需要生成db数据块。
图2-10 选择ton定时器操作
图2-11 ton指令调用数据块
在项目树的“程序块”中,可以看到自动生成的iec_timer_0_db[db1]数据块,生成后的ton指令调用如图2-12所示。
图2-12 ton指令调用示意
2.2.3 tof定时器
tof关断延时定时器指令的参数与ton相同,区别在于in 从1 跳变为 0 将启动定时器。
2.2.4 tp脉冲定时器
tp脉冲定时器指令虽然参数格式与ton、tof一致,但含义跟接通延时和断电延时不同,它是在in输入从0跳变到1之后,立即输出一个脉冲信号,其持续长度受pt值控制。
图2-13 tp指令应用
图2-14所示为tp指令时序图,从图中可以看到:即使ton的in信号还处于“1”状态,tp指令输出q在完成pt时长后,就不再保持为“1”;即使ton的in信号为多个“脉冲”信号,输出q也能完成pt时长的脉冲宽度。
图2-14 tp指令时序图
2.2.5 tonr时间累加器
tonr指令如图2-15所示,与ton、tof、tp相比增加了参数r,相关的参数及数据类型见表2-7。
图2-15 tonr指令
表2-7 tonr参数及数据类型
图2-16所示为tonr的时序图,当in信号不连续输入时,定时器et的值一直在累计,直到定时时间pt到,et的值保持为pt值;当r信号on时,et的值复位为零。
图2-16 tonr时序图2.2.6系统和时钟存储器的选用
在报警指示中经常会碰到“闪烁”的频率概念,用ton等定时器可以完成,但更便捷的方式就是采用博途软件自带的plc“系统和时钟存储器”。
在图2-17中,选中plc属性中所示的“系统和时钟存储器",点击右边窗口的复选框“启用系统存储器字节”和“启用时钟存储器字节”,采用默认的mb1、mb0作为系统存储器字节、时钟存储器字节,也可以修改该2字节的地址。
图2-17系统和时钟存储器
将mb1设置为系统存储器字节后,该字节的m1.0~m1.3的意义如下:
● m1.0(firstscan): 仅在进入run模式的扫描时为1状态,以后为0状态。
● m1.1(diagstatusupdate): 诊断状态已更改。
● m1.2(always true): 总是为1状态,其常开触点总是闭合或高电平。
● m1.3(always false); 总是为0状态,其常闭触点总是闭合或低电平。
时钟脉冲是一个周期内0状态和1状态所占的时间各为50%的方波信号,以m0.5为例,其时钟脉冲的周期为1s,如果用它的触点来控制接在某输出点的指示灯,指示灯将以1hz的频率闪动,亮0.5s、熄灭0.5s。
因为系统存储器和时钟存储器不是保留的存储器,用户程序或通信可能改写这些存储单元,破坏其中的数据。应避免改写这两个m字节,保证它们的功能正常运行。指定了系统存储器和时钟存储器字节后,这些字节不能再作它用,否则将会使用户程序运行出错,甚至造成设备损坏或人身伤害。
【实例2-2】用ton指令延时启动电动机
某电动机在启动按钮sb1动作后10s之后才启动,在停止按钮sb2动作后立即停止,请用ton指令进行编程。
1.[step1] 定义输入输出元件和电气接线
表2-6所示的输入元件包括sb1启动按钮和sb2停止按钮,均采取常开触点接线;输出元件包括接触器km1。具体电气接线如图2-18所示。
表2-6 输入输出元件及控制功能
图2-18 延时启动电动机电气接线
2.[step2] plc梯形图编程
图2-19所示延时启动电动机plc梯形图编程示意。
程序段1:对中间变量m10.1电动机起动信号定时10s,输出为q0.0。
程序段2:采用启动按钮和停止按钮的sr触发器,输出为m10.1电动机起动信号,停止按钮复位优先。
需要注意的是:程序段1和2的位置对于本实例来说其先后次序不影响程序的正确执行。
图2-19 延时起动电动机梯形图
3.[step3]调试
为了更好地理解ton指令,图2-20所示为程序下载后的实时监控,即在db1中实时读取当前的延时时间,如t#3s_110ms。
图2-20 ton指令实时监控
【实例2-3】用tonr指令统计设备运行时间
某设备所用的电动机在运行100分钟后要进行计时到指示,以便于维护人员进行停机检查。请用tonr指令进行编程。
1.[step1]定义输入输出元件和电气接线
表2-8所示为统计设备运行时间的输入输出元件及控制功能,包括3个输入信号的按钮和输出接触器、指示灯。电气接线如图2-21所示。
表2-8 输入输出元件及控制功能
图2-21 统计设备运行时间电气接线
2.[step2]plc梯形图编程
如图2-22所示为统计设备运行时间的梯形图。
程序段1:调用tonr对输入信号q0.0(即接触器km1)进行累计定时,100分钟时间一到即输出hl1指示灯q0.1,该定时器可以通过sb3进行复位。
程序段2:调用sr触发器对输入信号sb1进行q0.0置位、对停止按钮sb2和运行累计时间到信号hl1进行q0.0复位,其中复位优先。
图2-22 统计设备运行时间梯形图
【实例2-4】用时钟存储器来编程指示灯闪烁
如图2-23所示的指示灯hl1有两种闪烁方式,一种是当sb1按下时进行快闪,另外一种是当sb2按下时进行慢闪。当两个按钮同时按下时,指示灯hl1灭掉,然后进入待机状态,即按下sb1或sb2继续处于两种闪烁状态。请用时钟存储器来进行编程。
图2-23 指示灯闪烁示意
1.[step1]定义输入输出元件和电气接线
指示灯闪烁实例包括2个按钮输入和1个指示灯输入见表2-9。电气接线如图2-24所示。
表2-8 输入输出元件及控制功能
图2-24 指示灯闪烁电气接线
2.[step2]plc梯形图编程
图2-25所示为指示灯闪烁梯形图,采用m0.2来作为快闪的时钟存储器、m0.7来作为慢闪的时钟存储器。
程序段1:按下sb1快闪按钮,则置位快闪中间变量m10.0,复位慢闪中间变量m10.1。
程序段2:按下sb2慢闪按钮,则置位慢闪中间变量m10.1,复位快闪中间变量m10.0。
程序段3:同时按下2个按钮时,则复位%m10.0和m10.1,同时置位m10.2(即复位中间变量)。
程序段4:用2.5hz表示快闪,用0.5hz表示慢闪,在两种状态下输出指示灯。
程序段5:在同时按下2个按钮情况下,过2s后自动激活,运行再次进行慢闪或快闪动作。
图2-25 指示灯闪烁梯形图
2.3 比较、运算和移动指令
2.3.1 比较指令
表2-14所示为s7-1200共有10个常见的比较操作,用来比较数据类型相同的两个数in1与in2的大小,其操作数可以是i/q/m/l/d等存储区中的变量或常量。当满足比较关系式给出的条件时,等效触点接通。
表2-14比较指令表2-15所示为等于、不等于、大于等于、小于等于、大于、小于等6种比较指令触点的满足条件,且要比较的两个值必须为相同的数据类型。
表2-15比较指令触点这里以“等于”比较指令为例进行说明:如图2-26a所示可以使用“等于”指令确定个比较值(<操作数 1>)是否等于第二个比较值(<操作数2>)。比较器运算指令可以通过指令右上角黄色三角的个选项来选择等于、大于等于等比较器类型(图2-26b),也可以通过右下角黄色三角的第二个选项来选择数据类型,如整数、实数等(图2-26c)。
图2-26 比较器运算指令
(1)cmp==:等于比较器:
可以使用“等于”指令判断个比较值(<操作数 1>)是否等于第二个比较值(<操作数2>)。如果满足比较条件,则该指令返回逻辑运算结果 (rlo)“1”。如果不满足比较条件,则该指令返回 rlo“0”。
(2)cmp<>:不等于
使用“不等于”指令判断个比较值(<操作数 1>)是否不等于第二个比较值(<操作数2>)。如果满足比较条件,则该指令返回逻辑运算结果 (rlo)“1”。如果不满足比较条件,则该指令返回 rlo“0”。
(3)cmp>=:大于或等于
可以使用“大于或等于”指令判断个比较值(<操作数 1>)是否大于或等于第二个比较值(<操作数2>)。如果满足比较条件,则该指令返回逻辑运算结果 (rlo)“1”。如果不满足比较条件,则该指令返回 rlo“0”。
(4)cmp<=:小于或等于
可以使用“小于或等于”指令判断个比较值(<操作数 1>)是否小于或等于第二个比较值(<操作数2>)。如果满足比较条件,则该指令返回逻辑运算结果 (rlo)“1”。如果不满足比较条件,则该指令返回 rlo“0”。
(5)cmp>:大于
可以使用“大于”指令确定个比较值(<操作数 1>)是否大于第二个比较值(<操作数2>)。如果满足比较条件,则该指令返回逻辑运算结果 (rlo)“1”。如果不满足比较条件,则该指令返回 rlo“0”。
(6)cmp<:小于
可以使用“小于”指令判断个比较值(<操作数 1>)是否小于第二个比较值(<操作数2>)。如果满足比较条件,则该指令返回逻辑运算结果 (rlo)“1”。如果不满足比较条件,则该指令返回 rlo为“0”。
除了上述的常见比较指令之外,还有其他变量比较指令,其类型与说明如表2-14所示。
表2-14 变量比较类型与说明
2.3.2 移动指令
移动指令是将数据元素复制到新的存储器地址,并从一种数据类型转换为另一种数据类型,移动过程中不更改源数据
1.move移动值
如图2-27可以使用“移动值”指令将 in 输入操作数中的内容传送给 out1输出的操作数中。始终沿地址升序方向进行传送。如果使能输入 en 的信号状态为“0”或in 参数的数据类型与 out1参数的指定数据类型不对应时,则使能输出 eno 的信号状态为“0”
图2-27 move指令
表2-15 move指令可传送的类型在move指令中,若in 输入端数据类型的位长度超出了out1 输出端数据类型的位长度,则传送源值中多出来的有效位会丢失。若in 输入端数据类型的位长度小于 out1 输出端数据类型的位长度,则用零填充传送目标值中多出来的有效位。
在初始状态,指令框中包含 1个输出 (out1),可以鼠标点击图符扩展输出数目。 在该指令框中,应按升序顺序排列所添加的输出端。执行该指令时,将in 输入端操作数中的内容发送到所有可用的输出端。如果传送结构化数据类型 (dtl, struct, array)或字符串 (string)的字符,则无法扩展指令框。可以输出多个地址out1、out2、out3等,如图2-28所示。
图2-28 move指令的多个变量输出
2.move_blk指令
如图2-29所示,使用“move_blk块移动”指令,可将存储区(源区域)的内容移动到其他存储区(目标区域)。 使用参数count 可以指定待复制到目标区域中的元素个数。 可通过 in输入端的元素宽度来指定待复制元素的宽度。 并按地址升序顺序执行复制操作。
图2-29 move_blk指令
3.umove_blk无中断块移动
使用图2-30所示的“umove_blk无中断块移动”指令,可将存储区(源区域)的内容连续复制到其他存储区(目标区域)。 使用参数count 可以指定待复制到目标区域中的元素个数。可通过 in输入端的元素宽度来指定待复制元素的宽度。 源区域内容沿地址升序方向复制到目标区域。
图2-30 umove_blk指令
4.fill_blk填充块
图2-31所示的“fill_blk填充块”指令,用 in 输入的值填充一个存储区域(目标区域)。将以 out输出指定的起始地址,填充目标区域。可以使用参数 count 指定复制操作的重复次数。执行该指令时,将选择 in输入的值,并复制到目标区域 count 参数中指定的次数。
图2-31 fill_blk填充块
5. swap交换指令
“swap交换”指令可以更改输入 in 中字节的顺序,并在输出 out中查询结果。图2-32说明了如何使用“交换”指令交换数据类型为 dword的操作数的字节。表2-15所示为swap指令的参数。
图2-32 swap交换数据类型为dword的示意
表2-15 swap指令的参数
2.3.3 数学运算指令
在数学运算指令中,add、sub、mul和div分别是加、减、乘、除指令,其操作数的数据类型可选sint、int、 dint、 usint、 uint、 udint和real。在运算过程中,操作数的数据类型应该相同。
1.加法add指令
加法add指令可以从tia软件右边指令窗口的“基本指令”下的“数学函数”中直接添加(图2-33a所示)。使用“add”指令,根据图2-33b选选择的数据类型,将输入in1 的值与输入 in2 的值相加,并在输出 out (out = in1+in2)处查询总和。
图2-33 add指令
在初始状态下,指令框中至少包含两个输入(in1和 in2),可以鼠标点击图符扩展输入数目(图2-33c),在功能框中按升序对插入的输入进行编号,执行该指令时,将所有可用输入参数的值相加,并将求得的和存储在输出 out中。
表2-16列出了“add”指令的参数。根据参数说明,只有使能输入 en的信号状态为“1”时,才执行该指令。如果成功执行该指令,使能输出eno 的信号状态也为“1”。如果满足下列条件之一,则使能输出 eno的信号状态为“0”:
● 使能输入en的信号状态为“0”。
● 指令结果超出输出 out 指定的数据类型的允许范围。
● 浮点数具有无效值。
表2-16 add指令的参数图2-34中举例说明了add指令的工作原理:如果操作数i0.0的信号状态为“1”,则将执行“加”指令,将操作数iw64的值与iw66的值相加,并将相加的结果存储在操作数mw0中。如果该指令执行成功,则使能输出eno 的信号状态为“1”,同时置位输出q0.0。
图2-34 add指令应用
展开全文