西门子S7-1200plc 05 指令系统4.11_第1页
西门子S7-1200plc 05 指令系统4.11_第2页
西门子S7-1200plc 05 指令系统4.11_第3页
西门子S7-1200plc 05 指令系统4.11_第4页
西门子S7-1200plc 05 指令系统4.11_第5页
已阅读5页,还剩149页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、指令系统指令系统 S7-1200的指令从功能上大致可分为三类:基的指令从功能上大致可分为三类:基 本指令、扩展指令和全局库指令。本指令、扩展指令和全局库指令。 5.1 基本指令基本指令 基本指令包括位逻辑指令、定时器、计数器、基本指令包括位逻辑指令、定时器、计数器、 比较指令、数学指令、移动指令、转换指令、程序比较指令、数学指令、移动指令、转换指令、程序 控制指令、逻辑运算指令以及移位和循环移位指令控制指令、逻辑运算指令以及移位和循环移位指令 等。等。 基本逻辑指令基本逻辑指令 内部输入触点内部输入触点(I)(I)的闭合与断开仅与输入映像寄存器相应位的状的闭合与断开仅与输入映像寄存器相应位的状

2、 态有关,与外部输入按钮、接触器、继电器的常开态有关,与外部输入按钮、接触器、继电器的常开/ /常闭接法无关。常闭接法无关。 输入映像寄存器相应位为输入映像寄存器相应位为1 1,则内部常开触点闭合,常闭触点断开。,则内部常开触点闭合,常闭触点断开。 输入映像寄存器相应位为输入映像寄存器相应位为0 0,则内部常开触点断开,常闭触点闭合。,则内部常开触点断开,常闭触点闭合。 置位域复位域指令置位域复位域指令 置位域指令将指定的地址开始的连续若干个地址置位置位域指令将指定的地址开始的连续若干个地址置位( (变为变为1 1状状 态并保持态并保持) )。 复位域指令复位域指令将指定的地址开始的连续若干个

3、地址复位将指定的地址开始的连续若干个地址复位(变为变为0状状 态并保持态并保持)。 置位置位/复位指令复位指令 (1) S 、R指令中的指令中的2表示从指定的表示从指定的Q0.0开始的两个触点,即开始的两个触点,即Q0.0与与Q0.1。 (2) 在检测到在检测到I0.0闭合的上升沿时,输出线圈闭合的上升沿时,输出线圈Q0.0、Q0.1被置为被置为1,并保持,并保持, 而不论而不论I0.0为何种状态。为何种状态。 (3) 在检测到在检测到I0.1闭合的上升沿时,输出线圈闭合的上升沿时,输出线圈Q0.0、Q0.1被复位为被复位为0,并保持,并保持 ,而不论,而不论I0.0为何种状态。为何种状态。

4、指令说明指令说明 (1) 指定触点一旦被置位,则保持接通状态,直到指定触点一旦被置位,则保持接通状态,直到 对其进行复位操作;而指定触点一旦被复位,则变为对其进行复位操作;而指定触点一旦被复位,则变为 接通状态,直到对其进行复位操作。接通状态,直到对其进行复位操作。 (2) 如果对定时器和计数器进行复位操作,则被指如果对定时器和计数器进行复位操作,则被指 定的定的T或或C的位被复位,同时其当前值被清的位被复位,同时其当前值被清0。 复位优先、置位优先锁存器复位优先、置位优先锁存器 复位优先锁存器、置位优先锁存器: 输出线圈可选 指令功能指令功能 RS RS 复位优先锁存器,当置位信号和复位信号

5、都有效复位优先锁存器,当置位信号和复位信号都有效 时,复位信号优先,输出线圈不接通。时,复位信号优先,输出线圈不接通。 SR SR 置位优先锁存器,当置位信号和复位信号都有效置位优先锁存器,当置位信号和复位信号都有效 时,置位信号优先,输出线圈接通。时,置位信号优先,输出线圈接通。 RSRS、SRSR指令均为锁存器,一个复位优先,一个置位优指令均为锁存器,一个复位优先,一个置位优 先。先。S S连接置位输入,连接置位输入,R R连接复位输入。一旦输出线圈被置位,连接复位输入。一旦输出线圈被置位, 则保持置位状态直到复位输入接通。则保持置位状态直到复位输入接通。 置位、复位输入均以高电平状态有效

6、。置位、复位输入均以高电平状态有效。 例:抢答器的设计例:抢答器的设计 抢答器有三个输入,分别抢答器有三个输入,分别为为I0.0I0.0、I0.1I0.1和和I0.2I0.2,输输 出分别为出分别为Q4.0Q4.0、Q4.1Q4.1和和Q4.2Q4.2,复位输入是复位输入是I0.4I0.4。要要 求:三人中任意抢答,谁先按按钮,谁的指示灯优求:三人中任意抢答,谁先按按钮,谁的指示灯优 先亮,且只能亮一盏灯,进行下一问题时主持人按先亮,且只能亮一盏灯,进行下一问题时主持人按 复位按钮,抢答重新开始。复位按钮,抢答重新开始。 抢答器程序抢答器程序 边沿指令边沿指令 位逻辑指令位逻辑指令边缘检测触点

7、指令边缘检测触点指令 如果输入信号如果输入信号I0.6由由0变为变为1状态状态(即输入信号即输入信号I0.6的上升沿的上升沿),则,则 该触点接通一个扫描周期。该触点接通一个扫描周期。 触点下面的触点下面的M4.3为边缘存储位,用来存储上一个扫描循环是为边缘存储位,用来存储上一个扫描循环是 I0.6的状态,通过比较输入信号的当前状态和上一次循环的状态的状态,通过比较输入信号的当前状态和上一次循环的状态 来检测信号的边沿。边沿存储位的地址只能在程序中使用一次,来检测信号的边沿。边沿存储位的地址只能在程序中使用一次, 它的状态不能在其他地方被改写。只能使用它的状态不能在其他地方被改写。只能使用M、

8、全局、全局DB和静态和静态 局部变量来作边沿存储位,不能使用临时局部数据或局部变量来作边沿存储位,不能使用临时局部数据或I/O变量来变量来 作边沿存储位。作边沿存储位。 位逻辑指令位逻辑指令P_TRIG与与N_TRIG指令指令 在流进在流进P_TRIG指令的指令的CLK输入端的能流的上升沿,输入端的能流的上升沿,Q端输出一个端输出一个 扫描周期的能流,使扫描周期的能流,使M8.1置位。置位。 P_TRIG指令与指令与N_TRIG指令不能放在电路的开始处和结束处。指令不能放在电路的开始处和结束处。 位逻辑指令位逻辑指令3种边沿检测指令的功能种边沿检测指令的功能 以上升沿检测为例:以上升沿检测为例

9、: 在在P触点指令中,触点上面的地址的上升沿,该触点接通一个扫触点指令中,触点上面的地址的上升沿,该触点接通一个扫 描周期,因此描周期,因此P触点用于检测触点上面地址的上升沿,并且直接触点用于检测触点上面地址的上升沿,并且直接 输出上升沿脉冲。输出上升沿脉冲。 在在P线圈的能流的上升沿,线圈上面的地址在一个扫描周期为线圈的能流的上升沿,线圈上面的地址在一个扫描周期为1状状 态,因此态,因此P线圈用于检测能流的上升沿,并用线圈上面的地址来线圈用于检测能流的上升沿,并用线圈上面的地址来 输出上升沿脉冲。输出上升沿脉冲。 P_TRIG指令用于检测能流的上升沿,并且直接输出上升沿脉冲。指令用于检测能流

10、的上升沿,并且直接输出上升沿脉冲。 如果如果P_TRIG指令左边只有指令左边只有I1.0触点,可以用触点,可以用I1.0的的P触点来代替触点来代替 P_TRIG指令。指令。 例例按动一次瞬时按钮按动一次瞬时按钮I0.0,输出,输出Q4.0亮,再按动一亮,再按动一 次按钮,输出次按钮,输出Q4.0灭;重复以上。灭;重复以上。 例例 若故障信号若故障信号I0.0为为1,使,使Q4.0控制的指示灯以控制的指示灯以 1Hz的频率闪烁。操作人员按复位按钮的频率闪烁。操作人员按复位按钮I0.1后,如果后,如果 故障已经消失,则指示灯熄灭,如果没有消失,指故障已经消失,则指示灯熄灭,如果没有消失,指 示灯转

11、为常亮,直至故障消失。示灯转为常亮,直至故障消失。 定时器定时器 使用定时器指令可创建编程的时间延迟,使用定时器指令可创建编程的时间延迟,S7-1200 PLC有有4种定种定 时器:时器: TP: 脉冲定时器可生成具有预设宽度时间的脉冲。脉冲定时器可生成具有预设宽度时间的脉冲。 TON:接通延迟定时器输出:接通延迟定时器输出Q在预设的延时过后设置为在预设的延时过后设置为 ON。 TOF:关断延迟定时器输出:关断延迟定时器输出 Q 在预设的延时过后重置为在预设的延时过后重置为 OFF。 TONR:保持型接通延迟定时器输出在预设的延时过后设置:保持型接通延迟定时器输出在预设的延时过后设置 为为ON

12、。在使用。在使用 R 输入重置经过的时间之前,会跨越多个定时时输入重置经过的时间之前,会跨越多个定时时 段一直累加经过的时间。段一直累加经过的时间。 RT:通过清除存储在指定定时器背景数据块中的时间数据:通过清除存储在指定定时器背景数据块中的时间数据 来重置定时器。来重置定时器。 每个定时器都使用一个存储在数据块中的结构来保存定时器数每个定时器都使用一个存储在数据块中的结构来保存定时器数 据。据。 在编辑器中放置定时器指令时可分配该数据块。在编辑器中放置定时器指令时可分配该数据块。 接通延迟定时器及其时序图接通延迟定时器及其时序图 定时器的背景数据块结构定时器的背景数据块结构 练习练习 按下按

13、下瞬时启动按钮瞬时启动按钮I0.0,5秒后电动机启动,秒后电动机启动, 按下按下瞬时停止按钮瞬时停止按钮I0.1,10秒后电动机停止。秒后电动机停止。 例例 用接通延时定时器设计一个周期振荡电路。用接通延时定时器设计一个周期振荡电路。 用接通延时定时器设计周期和占空比可调的振荡电路。用接通延时定时器设计周期和占空比可调的振荡电路。 振荡电路的高、低电平时间分别由两个定时器的振荡电路的高、低电平时间分别由两个定时器的PT值确定。值确定。 保持型接通延迟定时器及其时序图保持型接通延迟定时器及其时序图 关断延迟定时器及其时序图关断延迟定时器及其时序图 脉冲定时器及其时序图脉冲定时器及其时序图 例:用

14、脉冲定时器实现一个周期振荡电路例:用脉冲定时器实现一个周期振荡电路 复位定时器指令复位定时器指令 两条运输带顺序相连,为避免运送的物料在两条运输带顺序相连,为避免运送的物料在1号运输带上堆积,号运输带上堆积, 按下起动按钮按下起动按钮I0.3,1号带开始运行,号带开始运行,8s后后2号带自动起动。停机号带自动起动。停机 的顺序与起动的顺序相反,按了停止按钮的顺序与起动的顺序相反,按了停止按钮I0.2后,先停后,先停2号带,号带,8s 后停后停1号带。号带。Q1.1和和Q0.6控制两台电动机控制两台电动机M1和和M2。 参数参数 IN从从0变为变为1将启动将启动TP、TON 和和 TONR,从,

15、从1变变0 将启动将启动 TOF。 ET 为定时开始后经过的时间,或称为已耗时间值为定时开始后经过的时间,或称为已耗时间值(可以不为可以不为ET指指 定地址定地址),它们的数值类型为,它们的数值类型为32位的位的Time,单位为,单位为ms,最大定时,最大定时 时间为时间为T#24D_20H_31M_23S_647MS。 IEC定时器和定时器和IEC计数器属于功能块,调用时需要指定配套的背计数器属于功能块,调用时需要指定配套的背 景数据块,定时器和计数器指令的数据保存在背景数据块中。景数据块,定时器和计数器指令的数据保存在背景数据块中。 在梯形图中输入定时器指令时,打开右边的指令窗口将在梯形图

16、中输入定时器指令时,打开右边的指令窗口将“定时器定时器 操作操作”文件夹中的定时器指令拖放到梯形图中适当的位置,在出文件夹中的定时器指令拖放到梯形图中适当的位置,在出 现的现的“调用选项调用选项”对话框中修改将要生成的背景数据块的名称,对话框中修改将要生成的背景数据块的名称, 或采用默认的名称。点击或采用默认的名称。点击“确定确定”按钮,自动生成数据块。按钮,自动生成数据块。 计数器计数器 S7-1200有有3种计数器:加计数器种计数器:加计数器(CTU)、减计数器、减计数器(CTD)和加减计和加减计 数器数器(CTUD)。它们属于软件计数器,其最大计数速率受到它所。它们属于软件计数器,其最大

17、计数速率受到它所 在的在的OB的执行速率的限制。的执行速率的限制。 如果需要速率更高的计数器,可以使用如果需要速率更高的计数器,可以使用CPU内置的高速计数器。内置的高速计数器。 调用计数器指令时,需要生成保存计数器数据的背景数据块。调用计数器指令时,需要生成保存计数器数据的背景数据块。 CU和和CD分别是加计数输入和减计数输入,在分别是加计数输入和减计数输入,在CU或或CD由由0变为变为1 是,实际计数值是,实际计数值CV加加1或减或减1。 复位输入复位输入R为为1时,计数器被复位,时,计数器被复位,CV被清被清0,计数器的输入,计数器的输入Q变变 为为0。 计数器指令计数器指令计数器的输入

18、输出计数器的输入输出 参数参数 加计数器及其时序图加计数器及其时序图 CTU: 参数参数 CU 的值从的值从 0 变为变为 1 时,时,CTU 使计数值加使计数值加 1。如果。如果 参数参数 CV(当前计数值当前计数值)的值大于或等于参数的值大于或等于参数 PV (预设计数值预设计数值)的值,的值, 则计数器输出参数则计数器输出参数 Q = 1。如果复位参数。如果复位参数 R 的值从的值从 0 变为变为 1,则,则 当前计数值复位为当前计数值复位为 0。 计数器的背景数据块结构计数器的背景数据块结构 减计数器及其时序图减计数器及其时序图 CTD: 参数参数 CD 的值从的值从 0 变为变为 1

19、 时,时,CTD 使计数值减使计数值减 1。如果参。如果参 数数 CV (当前计数值当前计数值)的值等于或小于的值等于或小于 0,则计数器输出参数,则计数器输出参数 Q = 1。 如果参数如果参数 LOAD 的值从的值从 0 变为变为 1,则参数,则参数PV (预设值预设值)的值将作为的值将作为 新的新的 CV (当前计数值当前计数值)装载到计数器。装载到计数器。 计数器指令计数器指令加减计数器加减计数器 CTUD: 加计数加计数 (CU, Count Up) 或减计数或减计数 (CD, Count Down) 输入的值从输入的值从 0 跳变为跳变为 1时,时,CTUD 会使计数值加会使计数值

20、加 1 或减或减 1。 如果参数如果参数 CV(当前计数值)的值大于或等于参数(当前计数值)的值大于或等于参数PV(预设值)(预设值) 的值,则计数器输出参数的值,则计数器输出参数 QU = 1。如果参数。如果参数 CV 的值小于或等的值小于或等 于零,则计数器输出参数于零,则计数器输出参数 QD = 1。 如果参数如果参数 LOAD 的值从的值从 0 变为变为 1,则参数,则参数 PV(预设值)的值将(预设值)的值将 作为新的作为新的 CV(当前计数值)装载到计数器。(当前计数值)装载到计数器。 如果复位参数如果复位参数 R 的值从的值从 0 变为变为 1,则当前计数值复位为,则当前计数值复

21、位为 0。 加减计数器及其时序图加减计数器及其时序图 PV = 4 传送带控制传送带控制 一个能够电气启动的传送带。在传送带的起点有两个按钮一个能够电气启动的传送带。在传送带的起点有两个按钮 开关:用于开关:用于START的的S1和用于和用于STOP的的S2。在传送带的尾部也。在传送带的尾部也 有两个按钮开关:有两个按钮开关:S3用于用于START,S4用于用于STOP。可以从任一。可以从任一 端启动或停止传送带。另外,当传送带上的物件到达末端时,端启动或停止传送带。另外,当传送带上的物件到达末端时, 传感器传感器S5使传送带停机。使传送带停机。 传送带示意图传送带示意图 MOTOR_ON S

22、1 S2 Start Stop S3 S4 Start Stop S5 用于传送带系统符号编程的元素用于传送带系统符号编程的元素 控制传送带程序控制传送带程序 “S1” ( S ) “MOTOR_ON” 网络1:按任何一个启动开关,接通电机 “S3” 网络1: O O S S1 S3 MOTOR_ON “S2” ( R ) “MOTOR_ON” 网络2:按任何一个停止或打开传送带 末端的常闭接点,停止电机 “S4” 网络2: O O ON S2 S4 RMOTOR_ON S5 “S5” 风机监控程序风机监控程序 某设备有三台风机,当设备处于运行状态时,如果风机至某设备有三台风机,当设备处于运行

23、状态时,如果风机至 少有两台以上转动,则指示灯常亮;如果仅有一台风机转动,少有两台以上转动,则指示灯常亮;如果仅有一台风机转动, 则指示灯以则指示灯以0.5 Hz的频率闪烁;如果没有任何风机转动,则指的频率闪烁;如果没有任何风机转动,则指 示灯不亮。示灯不亮。 输入位输入位I0.0, I0.1,I0.2分别分别 为风机为风机1,2,3 输入端。输入端。 通过传送带电机KM1带动传送带传送物品,通过产品检 测器PH检测产品通过的数量,传送带每传送24个产品机 械手KM2动作1次,进行包装,机械手动作后,延时2秒, 机械手的电磁铁切断。通过传送带起动按钮、传送带停 机按钮控制传送带的运动。 产品通

24、过检测器产品通过检测器 PH 机械手机械手 KM1 KM2 传送带电机传送带电机 计数器应用举例:产品数量检测计数器应用举例:产品数量检测 产品通过检测器产品通过检测器 PH 机械手机械手 KM1 KM2 传送带电机传送带电机 PLC的的I/O分配:分配: I0.0 传送带停机按钮传送带停机按钮 I0.1传送带起动按钮传送带起动按钮 I0.2 产品通过检测器产品通过检测器PH Q0.0传送带电机传送带电机KM1 Q0.1机械手机械手KM2 定时器定时器,定时定时2秒秒 计数器,设定值计数器,设定值24 (每(每24个产品个产品 机械手动作机械手动作1次)次) I0.0 传送带停传送带停 机按钮

25、机按钮 I0.1传送带起动传送带起动 按钮按钮 I0.2 产品通过产品通过 检测器检测器PH Q0.0传送带电机传送带电机 KM1 Q0.1机械手机械手 KM2 定时器定时器,定时定时2秒秒 计数器,设定值计数器,设定值24 机械手动作后,延时机械手动作后,延时2 2秒,秒, 机械手的电磁铁切断机械手的电磁铁切断 测到一个产品,测到一个产品,I0.2产生一个正产生一个正 脉冲,使计一个数。脉冲,使计一个数。 C10每计每计24个数,机械手动作一次个数,机械手动作一次 3台电机顺序启动、反序停止控制台电机顺序启动、反序停止控制 控制要求:按下启动按钮后,控制要求:按下启动按钮后,3台电机按台电机

26、按M1、 M2、M3的顺序隔的顺序隔2s启动;按下停止按钮后,启动;按下停止按钮后,3台台 电机按电机按M3、M2、M1的顺序隔的顺序隔2s停止。停止。 3台电机顺序启台电机顺序启 动,反序停止控动,反序停止控 制程序制程序 展厅人数控制系统展厅人数控制系统 控制要求:现有一展厅,最多可容纳控制要求:现有一展厅,最多可容纳50人同时人同时 参观。展厅进口与出口各装一传感器,每有一人进参观。展厅进口与出口各装一传感器,每有一人进 出,传感器给出一个脉冲信号。试编程实现,当展出,传感器给出一个脉冲信号。试编程实现,当展 厅内不足厅内不足50人时,绿灯亮,表示可以进入;当展厅人时,绿灯亮,表示可以进

27、入;当展厅 满满50人时,红灯亮,表示不准进入。人时,红灯亮,表示不准进入。 展厅人数控制系统展厅人数控制系统I/O分配表分配表 展厅人数控制程序展厅人数控制程序 运料车自动装、卸料控制运料车自动装、卸料控制 控制要求:控制要求:某运料车如图所示,可在某运料车如图所示,可在A A、B B两地分别启动。运两地分别启动。运 料车启动后,自动返回料车启动后,自动返回A A地停止,同时控制料斗门的电磁阀地停止,同时控制料斗门的电磁阀Y1Y1打开打开 ,开始装料。,开始装料。1 1分钟后,电磁阀分钟后,电磁阀Y1Y1断开,关闭料斗门,运料车自动断开,关闭料斗门,运料车自动 向向B B地运行。到达地运行。

28、到达B B地后停止,小车底门由电磁阀地后停止,小车底门由电磁阀Y2Y2控制打开,开始控制打开,开始 卸料。卸料。1 1分钟后,运料车底门关闭,开始返回分钟后,运料车底门关闭,开始返回A A地。之后重复运行。地。之后重复运行。 运料车在运行过程中,可用手动开关使其停车。再次启动后运料车在运行过程中,可用手动开关使其停车。再次启动后 ,可重复,可重复中内容中内容 图图7.43 运料车自动装、卸料控制示意图运料车自动装、卸料控制示意图 运料车自动装、卸料控制运料车自动装、卸料控制I/O分配表分配表 比较指令比较指令 可以使用可以使用“等于等于”操作确定第一个比较值是否等于第二个比较值。操作确定第一个

29、比较值是否等于第二个比较值。 要比较要比较 的两个值必须为相同的数据类型。该的两个值必须为相同的数据类型。该 LAD 触点比较结果为触点比较结果为 TRUE 时,则该触时,则该触 点会被激活。点会被激活。 在程序编辑器中单击该指令后,可以从下拉菜单中选择比较类型在程序编辑器中单击该指令后,可以从下拉菜单中选择比较类型 和数据类型。和数据类型。 可以使用“大于”操作确定第一个比较值是否大于第二个比较值。 要比较的两个值必 须为相同的数据类型。 如果比较为真,则 RLO 为“1”。 在比较字符串时,通过字符 ASCII 码比较字符(例如“a”大于“A”)。 从左到右执行 比较。 第一个不同的字符决

30、定比较结果。 如果较长字符串的左侧部分和较短字符串相 同,则认为较长字符串更大。 使用 IN_RANGE 和 OUT_RANGE 指令可测试输入值是在指定的值范围 之内还是之外。 如果比较结果为 TRUE,则功能框输出为 TRUE。输 入参数 MIN、VAL 和 MAX 的数据类型必须相同。在程序编辑器中单 击该指令后,可以从下拉菜单中选择数据类型。 例:用比较和计数指令编写开关灯程序,要求例:用比较和计数指令编写开关灯程序,要求 灯控按钮灯控按钮I0.0按下一次,灯按下一次,灯Q4.0亮,按下两次,亮,按下两次, 灯灯Q4.0,Q4.1全亮,按下三次灯全灭,如此循全亮,按下三次灯全灭,如此循

31、 环。环。 分析:在程序中所用计数器为加法计数器,当分析:在程序中所用计数器为加法计数器,当 加到加到3 3时,必须复位计数器,这是关键。灯控制时,必须复位计数器,这是关键。灯控制 程序如图所示。程序如图所示。 梯形图程序如下:梯形图程序如下: 例:在例:在HMI设备上可以设定电动机的转速,设定值设备上可以设定电动机的转速,设定值 MW20的范围为的范围为100-1440转转/分钟,若输入的设定值分钟,若输入的设定值 在此范围内,则延时在此范围内,则延时5秒钟启动电动机秒钟启动电动机Q0.0,否则,否则 Q0.1长亮提示。长亮提示。 使用使用OK和和NOT_OK指令可测试输入的数据是否为符合指

32、令可测试输入的数据是否为符合IEEE规范规范754的有的有 效实数。图中,当效实数。图中,当MD0和和MD4中为有效的浮点数时,会激活中为有效的浮点数时,会激活“实数实数 乘乘”(MUL) 运算并置位输出,即将运算并置位输出,即将MD0的值将与的值将与MD4的值相乘,结果存的值相乘,结果存 储在储在MD10中同时中同时Q4.0输出为输出为1。 如果输入 IN 的值为 123.4567则输出 OUT 返回值 0.4567 22 bac 移动指令移动指令 可以使用“移动块”操作将一个存储区(源区域)的内容复制到另一个存储区(目标 区域)。 要复制到目标区域的元素个数由参数 COUNT 指定。 要复

33、制的元素的宽度由 输入 IN 的元素宽度定义。复制操作沿地址升序方向进行。 只有使能输入 EN 的信号状态为“1”时,才执行该操作。 如果运算执行过程中未发生 错误,则输出 ENO 的信号状态为“1”。 如果满足下列条件之一,使能输出 ENO 将返回信号状态“0”: 输入 EN 的信号状态为“0”。 复制的数据量超出输出 OUT 存储区所提供的数据量。 可以通过“填充块”操作使用输入 IN 的值填充存储区(目标区域)。 从输出 OUT 指 定的地址开始填充目标区域。 重复的复制操作次数由参数 COUNT 指定。 执行该操作 时,将选择输入 IN 的值并将其按照参数 COUNT 指定的重复次数复

34、制到目标区域。 只有使能输入 EN 的信号状态为“1”时,才执行该操作。 如果运算执行过程中未发生 错误,则输出 ENO 的信号状态为“1”。 如果满足下列条件之一,使能输出 ENO 将返回信号状态“0”: 输入 EN 的信号状态为“0”。 复制的数据量超出输出 OUT 存储区所提供的数据量。 数据复制操作规则 要复制 Bool 数据类型,请使用 SET_BF、RESET_BF、R、S 或 输出线圈 (LAD) 要复制单个基本数据类型、结构或要复制字符串中的单个字符,请 使用 MOVE 要复制基本数据类型数组,请使用 MOVE_BLK 或 UMOVE_BLK 要复制字符串,请使用 S_CONV

35、 MOVE_BLK 和 UMOVE_BLK 指令不能用于将数组或结构复制到 I、 Q 或 M 存储区。 数据填充操作规则 要使用 BOOL 数据类型填充,请使用 SET_BF、 RESET_BF、R、S 或输出线圈(LAD) 要使用单个基本数据类型填充或要在字符串中 填充单个字符,请使用 MOVE 要使用基本数据类型填充数组,请使用 FILL_BLK 或 UFILL_BLK FILL_BLK 和 UFILL_BLK 指令不能用于将数组 填充到 I、Q 或 M 存储区。 转换指令转换指令 “转换”操作读取参数 IN 的数据,然后根据指定的数据类型对其进行转换。 仅当使能输入 EN 的信号状态为“

36、1”时,才能启动“转换”操作。 如果执行过程中未 发生错误,则输出 ENO 的信号状态也为“1”。 如果满足下列条件之一,使能输出 ENO 将返回信号状态“0”: 输入 EN 的信号状态为“0”。 处理过程中发生溢出之类的错误。 可以使用“取整数字值”运算将输入 IN 的值取整为最接近的整数。 该运算将输入 IN 的值解释为浮点数并将其转换为最接近的双精度整数。 如果输入值恰好是相邻偶数和 奇数的平均数,则选择偶数。 运算结果放在输出 OUT 中,可供查询。 只有使能输入 EN 的信号状态为“1”时,才执行该操作。 如果运算执行过程中未发生 错误,则输出 ENO 的信号状态为“1”。 如果满足

37、下列条件之一,使能输出 ENO 将返回信号状态“0”: 输入 EN 的信号状态为“0”。 可以使用“浮点数向上取整”运算将输入 IN 的值向上取整为相邻整数。 该运算将输入 IN 的值解释为浮点数并将其向上转换为相邻的整数。 运算结果放在输出 OUT 中,可 供查询。 输出值可以大于或等于输入值。 只有使能输入 EN 的信号状态为“1”时,才执行该操作。 如果运算执行过程中未发生 错误,则输出 ENO 的信号状态为“1”。 如果满足下列条件之一,使能输出 ENO 将返回信号状态“0”: 输入 EN 的信号状态为“0”。 可以使用“浮点数向下取整”运算将输入 IN 的值向下取整为相邻整数。 该运

38、算将输入 IN 的值解释为浮点数并将其向下转换为相邻的整数。 运算结果放在输出 OUT 中,可 供查询。 输出值可以小于或等于输入值。 只有使能输入 EN 的信号状态为“1”时,才执行该操作。 如果运算执行过程中未发生 错误,则输出 ENO 的信号状态为“1”。 如果满足下列条件之一,使能输出 ENO 将返回信号状态“0”: 输入 EN 的信号状态为“0”。 可以使用“截取整数”运算得出整数而不对输入 IN 的值进行舍入。 输入 IN 的值被视 为浮点数。 该运算仅选择浮点数的整数部分,并将其发送到输出 OUT 中,不带小数 位。 只有使能输入 EN 的信号状态为“1”时,才执行该操作。 如果

39、运算执行过程中未发生 错误,则输出 ENO 的信号状态为“1”。 如果满足下列条件之一,使能输出 ENO 将返回信号状态“0”: 输入 EN 的信号状态为“0”。 可以使用“标定”运算通过将输入 VALUE 的值映射到指定的取值范围对该值进行标定。 执行“标定”运算时,会将输入 VALUE 的浮点数值标定到由参数 MIN 和 MAX 定义的 取值范围。 标定结果为整数,并存储在输出 OUT 中。 只有使能输入端 EN 的信号状态为“1”时,才执行“标定”运算。 在这种情况下,使 能输出 ENO 的信号状态也为“1”。 可以使用“标准化”运算通过将输入 VALUE 的变量值映射到线性标尺对其进行

40、标准化。 可以使用参数 MIN 和 MAX 定义(应用于该标尺的)取值范围的限值。 根据标准化值 在该取值范围内的位置,计算结果并以浮点数形式存储在输出 OUT 中。 如果要标准 化的值等于输入 MIN 的值,输出 OUT 将返回值“0.0”。 如果要标准化的值等于输入 MAX 的值,输出 OUT 将返回值“1.0”。 程序控制指令程序控制指令 可以使用“为 1 时块中跳转(有条件)” 目标程序段必须标有跳转标签。 需要指定 该跳转标签的名称以便执行该操作。 指定的跳转标签位于该操作的上方。 指定的跳转标签必须在执行该操作的块中。 指定的名称在块中只能出现一次。 如果该操作的输入端的逻辑运算结

41、果 为“1”,则跳转到跳转标签所标识的程序段。 跳转方向可以朝向更大或更小的程序段编号。 如果该操作的输入不为真 (RLO = 0),则程序继续在下一个程序段中执行。 可以使用“跳转标签”指定跳转的目标程序段,程序应在目标程序段中继续执行。 跳 转标签的名称可以包含字母、数字或下划线。 跳转标签以及指定了该跳转标签的操作必须位于同一个块中。 跳转标签的名称在块中 只能分配一次。 可以使用“为 0 时块中跳转(有条件)”操作,目标程序段必须标有跳转标 签。 需要指定该跳转标签的名称以便执行该操作。 指定的跳转标签位于该操 作的上方。 指定的跳转标签必须在执行该操作的块中。 指定的名称在块中只能出

42、现一次。 如果该操作的输入端的逻辑运算结果 (RLO) 为“0”,则跳转到跳转标签所标 识的程序段。 跳转方向可以朝向更大或更小的程序段编号。 如果该操作的输入端的逻辑运算结果为“1”,则程序在下一个程序段中继续 执行。 可以使用“返回”操作停止块的执行。 只有左侧接头的信号状态为“1”时, 才会执行该操作。 如果满足该条件,将在当前被调用块中终止程序执行并在 调用块(例如,在调用 OB 中)中的调用功能后继续执行。 调用功能的状态 由“返回”操作的参数决定。 该参数可以为以下值: TRUE: 调用功能的输出 ENO 置位为“1”。 FALSE: 调用功能的输出 ENO 复位为“0”。 : 调

43、用功能的输出 ENO 由指定操作数的信号状态决定。 如果组织块被“返回”操作终止,则 CPU 继续执行系统程序。 如果“返回”操作输入端的信号状态为“0”,则不执行该操作。 在这种情况 下,程序继续在被调用块的下一个程序段中执行。 图图 无条件跳转无条件跳转 图图 条件跳转条件跳转 字逻辑运算指令字逻辑运算指令 可以使用“AND 逻辑运算”将输入 IN1 的值与输入 IN2 的值通过 AND 逻辑逐位运算, 并通过输出 OUT 查询结果。 执行该运算时,输入 IN1 的值的位 0 与输入 IN2 的值的位 0 通过 AND 逻辑进行运算。 结果存储在输出 OUT 的位 0 中。 对指定值的所有

44、其它位都执行相同的逻辑运算。 仅当该逻辑运算中的两个位的信号状态均为“1”时,结果位的信号状态才为“1”。 如 果该逻辑运算的两个位中有一个位的信号状态为“0”,则对应的结果位将复位。 只有使能输入 EN 的信号状态为“1”时,才执行该操作。 在这种情况下,输出 ENO 的 信号状态也为“1”。 如果使能输入 EN 的信号状态为“0”,则使能输出 ENO 的信号状态复位为“0”。 可以使用“解码”运算在输出值中置位一个位,该位通过输入值指定。 “解码”运算读取输入 IN 的值,然后在输出值中置位一个位,该位位置与读取的值一 致。 输出值中的其它位以零填充。 只有使能输入 EN 的信号状态为“1

45、”时,才能启动“解码”运算。 如果执行过程中未 发生错误,则输出 ENO 的信号状态也为“1”。 如果使能输入 EN 的信号状态为“0”,则使能输出 ENO 的信号状态复位为“0”。 可以使用“编码”运算读取输入值中最低有效置位位的位号并将其发送到输出 OUT。 “编码”运算选择输入 IN 值的最低有效位并将该位号写入输出 OUT 的变量中。 只有使能输入 EN 的信号状态为“1”时,才能启动“编码”运算。 如果执行过程中未 发生错误,则输出 ENO 的信号状态也为“1”。 如果使能输入 EN 的信号状态为“0”,则使能输出 ENO 的信号状态复位为“0”。 “选择”操作依靠一个开关(参数 G

46、)选择输入 IN0 或 IN1 中的一个并将其数据复制到 输出 OUT。 如果参数 G 的信号状态为“0”,则复制输入 IN0 的值。 如果参数 G 的信 号状态为“1”,则将输入 IN1 的值复制到输出 OUT。 只有使能输入 EN 的信号状态为“1”时,才执行该操作。 如果执行过程中未发生错误, 则输出 ENO 的信号状态也为“1”。 如果使能输入 EN 的信号状态为“0”或执行该操作期间出错,将复位使能输出 ENO。 可以使用“多路复用”操作将所选输入的数据复制到输出 OUT。 功能框 MUX 的可选 输入数可以扩展。 输入会在该功能框中自动编号。 从 IN0 起开始编号,每个新输入的

47、编号连续递增。 可以使用参数 K 确定应该将哪个输入的数据复制到输出 OUT。 如果 参数 K 的值大于可用输入数,则将参数 ELSE 的数据复制到输出 OUT,并将使能输出 ENO 设置为信号状态“0”。 只有所有输入的变量和输出 OUT 的变量具有相同数据类型时,才能执行“多路复用” 操作。 参数 K 例外,因为只能为其指定整数。 只有使能输入 EN 的信号状态为“1”时,才执行该操作。 如果执行过程中未发生错误, 则输出 ENO 的信号状态也为“1”。 移位和循环指令移位和循环指令 可以使用“右移”操作将输入 IN 的变量数据逐位右移,并通过输出 OUT 查询结果。 使用参数 N 设置指

48、定将移位的位数。 参数 N 的值为“0”时,输入 IN 的值将被复制到输出 OUT 的变量中。 当参数 N 的值大于位数时,输入 IN 的变量值将按其可用位数向右移位。 无符号值移位时,用零填充变量左侧区域中空出的位。 如果指定值有符号,则用符号位的信号状态 填充空出的位 可以使用“左移”操作将输入 IN 中的变量数据逐位左移,并通过输出 OUT 查询结果。 使用参数 N 设置指定将移位的位数。 参数 N 的值为“0”时,输入 IN 的值将被复制到输出 OUT 的变量中。 当参数 N 的值大于位数时,输入 IN 的变量值将按其可用位数向左移位。 用零填充变量右侧部分因移位空出的位。 可以使用“

49、循环右移”操作将输入 IN 的变量数据逐位循环右移,并通过输出 OUT 查询结果。 参 数 N 指定将循环移位的位数。 用挤出的位填充因循环移位空出的位。 参数 N 的值为“0”时,输入 IN 的值将被复制到输出 OUT 的变量中。 当参数 N 的值大于位数时,输入 IN 的变量值将按其可用位数进行循环移位。 可以使用“循环左移”操作将输入 IN 的变量数据逐位循环左移,并通过输出 OUT 查询结果。 参 数 N 指定将循环移位的位数。 用挤出的位填充因循环移位空出的位。 参数 N 的值为“0”时,输入 IN 的值将被复制到输出 OUT 的变量中。 当参数 N 的值大于位数时,输入 IN 的变

50、量值将按其可用位数进行循环移位。 例例 通过循环指令实现彩灯控制。通过循环指令实现彩灯控制。 编写程序如图编写程序如图5-30所示,其中所示,其中I0.0为控制开关,为控制开关, M1.5为周期为为周期为1s的时钟存储器位,实现的功能为当的时钟存储器位,实现的功能为当 按下按下I0.0,QD4中为中为1的输出位每秒钟向左移动的输出位每秒钟向左移动1位。位。 第第1段程序的功能是赋初值,即将段程序的功能是赋初值,即将QD4中的中的Q7.0置置 位,第位,第2段程序的功能是每秒钟段程序的功能是每秒钟QD4循环左移一位。循环左移一位。 5.2 扩展指令扩展指令 S7-1200的扩展指令包括日期和时间

51、指令,字的扩展指令包括日期和时间指令,字 符串和字符指令,程序控制指令,通信指令,中断符串和字符指令,程序控制指令,通信指令,中断 指令,指令,PID控制指令,运动控制指令,脉冲指令等。控制指令,运动控制指令,脉冲指令等。 日期和时间指令日期和时间指令 使用 T_CONV 可将输入 IN 的值转换成输出 OUT 指定的数据格式。 可实现下列转换: 时间 (TIME) 到数字值 (DINT) 的转换 数值 (DINT) 到时间 (TIME) 的转换 通过选择指令输入和输出的数据类型来决定转换的类型。 可通过输出 OUT 查询转换结果。 使用 T_ADD 可将输入 IN1 的时间与输入 IN2 的

52、时间相加。 通过输出 OUT 查询结果。 可以对下列格式进行相加操作: 时间段 (TIME) 与时间段 (TIME) 相加。 结果可以输出到 TIME 格式的变量中。 时间段 (TIME) 与时间点 (DTL) 相加。 结果可以输出到 DTL 格式的变量中。 通过选择指令输入和输出的数据类型来决定输入 IN1 和输出 OUT 的格式。 在输入 IN2 中,只能指定 TIME 格式的时间。 使用 T_SUB 可将输入 IN1 的时间与输入 IN2 的时间相减。 通过输出 OUT 查询差值。 可以对下列格式进行相减操作: 时间段 (TIME) 与时间段 (TIME) 相减。 结果可以输出到 TIM

53、E 格式 的变量中。 从某时间点 (DTL) 减去一个时间段 (TIME)。 结果可以输出到 DTL 格 式的变量中。 通过选择指令输入和输出的数据类型来决定输入 IN1 和输出 OUT 的 格式。 在输入 IN2 中,只能指定 TIME 格式的时间。 使用 T_DIFF 可将输入 IN1 的时间与输入 IN2 的时间相减。 以 TIME 格式通过输出 OUT 输出结果。 在输入 IN1 和 IN2 中只能指定 DTL 格式的值。 如果在输入 IN2 中指定的时间大于在输入 IN1 中指定的时间,则结果 将以负值的形式通过输出 OUT 输出。 如果该指令的结果超出允许范 围,则此结果将限制为相

54、应的值,并且使能输出 ENO 将设置为“0”。 可使用 WR_SYS_T 设置 CPU 时钟的日期和时间。 在指令的输入 IN 指定 DTL 格式的日期和时间。 在输出 RET_VAL 中,可以查询指令执行期间是否 出错。 不能使用“WR_SYS_T”指令发送有关本地时区或夏令时的信息。 可使用 RD_SYS_T 读取 CPU 时钟的当前日期和当前时间。 数据以 DTL 格式放在指令的输出 OUT 中。 得出的值不包含有关本地时区或 夏令时的信息。 在输出 RET_VAL 中,可以查询指令执行期间是否出 错。 可使用 RD_LOC_T 从 CPU 时钟读取当前本地时间,并在输出 OUT 以 D

55、TL 格式输出该值。 在 CPU 时钟的组态中设置的时区和夏令时 开始时间以及标准时间,其相关信息均包括在本地时间信息中。 字符串转换指令字符串转换指令 使用 S_CONV 可将输入 IN 的值转换成在输出 OUT 中指定的数据格式。 可实现下列 转换: 字符串 (STRING) 转换为数字值: 在输入 IN 中指定的字符串的所有字符都将进行转换。 允许的字符为数字 0 到 9、小数 点以及加号和减号。 字符串的第一个字符可以是有效数字或符号。 前导空格和指数表 示将被忽略。 无效字符可能会中断字符转换。 此时,使能输出 ENO 将设置为“0”。 可通过选择输出 OUT 的数据类型来决定转换的

56、输出格式。 数字值转换为字符串 (STRING): 通过选择输入 IN 的数据类型来决定要转换的数字值格式。 必须在输出 OUT 中指定一 个有效的 STRING 数据类型的变量。 转换后的字符串长度取决于输入 IN 的值。 由于 第一个字节包含字符串的最大长度,第二个字节包含字符串的实际长度,因此转换的 结果从字符串的第三个字节开始存储。 输出正数字值时不带符号。 复制字符串: 如果在指令的输入和输出均输入 STRING 数据类型,则输入 IN 的字符串将被复制到输 出 OUT。 如果输入 IN 字符串的实际长度超出输出 OUT 字符串的最大长度,则将复制 IN 字符串中完全适合 OUT 的

57、字符串的那部分,并且使能输出 ENO 将设置为“0”值。 使用 STRG_VAL 可将字符串转换为数字值。 在输入 IN 中指定要转换的字符串。 可通 过选择输出 OUT 的数据类型来决定输出值的格式。 通过输出 OUT 查询结果。 从参数 P 中指定位置的字符开始转换。 例如,如果参数 P 中指定的值为“1”,则将从 指定字符串的第一个字符开始转换。 转换允许的字符为数字 0 到 9、小数点、逗号小 数点、符号“E”和“e”以及加号和减号字符。 无效字符可能会中断转换。 此时,使能 输出 ENO 将设置为“0”。 使用参数 FORMAT 可指定要如何解释字符串中的字符。 也可以使用“STRG

58、_VAL”指 令来转换和表示指数值。 只能为参数 FORMAT 指定 USINT 数据类型的变量。 使用 VAL_STRG 可将数字值转换为字符串。 在输入 IN 中指定要转换的值。 通过选择数据类型来 决定数字值的格式。 通过输出 OUT 查询转换结果。 通过参数 P 可指定从字符串中的哪个字符开始写入结果。 例如,如果参数 P 中指定的值为“2”, 则将从字符串的第二个字符开始保存转换值。 通过参数 SIZE 可以指定字符串中写入的字符数。 这要从参数 P 中指定的字符开始算起。 如果由 参数 P 和 SIZE 定义的长度不够,则使能输出 ENO 将设置为“0”。 如果输出值比指定长度短,

59、则 结果将以右对齐方式写入字符串。 空字符位置将填入空格。 转换允许的字符为数字 0 到 9、小数点、逗号小数点、符号“E”和“e”以及加号和减号字符。 无效 字符可能会中断转换。 此时,使能输出 ENO 将设置为“0”。 使用参数 FORMAT 可指定在转换期间如何解释数字值以及如何将其写入字符串。 只能为参数 FORMAT 指定 USINT 数据类型的变量。 字符串操作指令字符串操作指令 STRING 类型的变量包含两个长度: 最大长度和当前长度(即当前有效字符的数量)。 每个变量的字符串最大长度在 STRING 关键字的方括号中指定。 当前长度表示实际使 用的字符位置数。 当前长度必须小

60、于或等于最大长度。 字符串占用的字节数为最大长 度加 2。 可使用“LEN”指令查询在输入 IN 中指定的字符串的当前长度,并在输出 OUT 以数字 值的形式将其输出。 空字符串 () 的长度为零。 如果操作处理期间出错,则将输出空字符串。 CONCAT 连接字符串参数 IN1 和 IN2 以形成一个字符串,并放在 OUT 中。 目标字符 串必须足够长,否则结果字符串将被截短并且使能输出 ENO 将设置为“0”值。 如果指令处理期间出错并且可以写入到输出 OUT,则将输出空字符串。 可使用 LEFT 从输入 IN 字符串的第一个字符开始提取出一部分字符串。 通过参数 L 指 定要提取的字符数。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论