




免费预览已结束,剩余80页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章S7 200系列PLC基本指令系统及应用 5 1指令及结构5 2位逻辑指令5 3定时器 计数器和比较指令5 4运算指令5 5数据处理指令5 6程序控制指令与子程序指令 5 1指令及结构 5 1 1指令的组成 语句指令 STL 由一个操作码和一个操作数组成 例如 AI1 0 梯形逻辑指令 LAD 用图形元素表示PLC要完成的操作 如图5 1 图5 1梯形逻辑指令 5 1 2操作数 操作数标识符及参数操作数由操作数标识符和参数组成 操作数标识符由主标识符和辅助标识符组成 主标识符有 I 输入过程映像存储区 Q 输出过程映像存储区 V 变量存储区 M 位存储区 T 定时器存储区 C 计数器存储区 HC 高速计数器 AC 累加器 SM 特殊存储器 L 局部变量存储器 AI 模拟量输入映像存储器 AQ 模拟量输出映像存储器 辅助标识符有 X 位 B 字节 W 字 字节 D 双字 字节 5 1 2操作数 操作数的表示法 物理地址 绝对地址 表示法 符号地址表示法 5 1 3寻址方式 直接寻址 位寻址格式 特殊器件的寻址格式 字节 字和双字的寻址格式 CPU存储区域的间接寻址 5 1 4S7 200系列PLC的编程数据类型 5 2位逻辑指令 5 2 1触点指令 标准触点指令装载常开触点指令格式 LDbit装载常闭触点指令格式 LDNbit与常开触点指令格式 Abit与常闭触点指令格式 ANbit或常开触点指令格式 Obit或常闭触点指令格式 ONbit 程序实例 LDI0 0 装入常开触点OI0 1 或常开触点AI0 2 与常开触点 Q0 0 输出触点 如果本梯级中将I0 1的触点改 为Q0 0的常开触点 则成为电 机起动停止控制环节的梯形图LDNI0 0 装入常闭触点ONI0 1 或常闭触点ANI0 2 与常闭触点 Q0 1 输出触点LDI0 0 OI0 1 AI0 2 NOT 取非 即输出反相 Q0 3 标准触点LAD和STL例 返回 5 2 1触点指令 图5 3触点指令在梯形图中的表示符号 5 2 1触点指令 立即触点指令LDI LDNI AI ANI OI和ONI格式 LDIbit 取反指令格式 NOT NOT指令无操作数 正负跳变指令正跳变触点指令格式 EU 无操作数 负跳变触点指令格式 ED 无操作数 5 2 2线圈指令标准输出线圈指令格式 bit立即输出线圈指令格式 Ibit置位线圈指令格式 Sbit N复位线圈指令格式 Rbit N立即置位线圈指令格式 SIbit N立即复位线圈指令格式 RIbit N 5 2 2线圈指令 图5 5线圈指令在梯形图中的表示符号 5 2 4逻辑堆栈指令ALD 栈装载与指令 与块 OLD 栈装载或指令 或块 LPS 逻辑进栈指令 分支或主控指令 LPP 逻辑出栈指令 分支结束或主控复位指令 LRD 逻辑读栈指令LDS 载入堆栈指令 LPS LRD LPP LDS指令的操作过程 这里n 3 LPS与LPP必须配对使用 应用举例 LDI0 0 装入常开触点OI2 2 或常开触点LDI0 1 被串的块开始LDI2 0 被并路开始AI2 1 与常开触点OLD 栈装载或 并路结束ALD 栈装载与 串路结束 Q5 0 输出触点LDI0 0 装入常开触点LPS 逻辑推入栈 主控AI0 5 与常开触点 Q7 0 输出触点LRD 逻辑读栈 新母线LDI2 1 装入常开触点OI1 3 或常开触点ALD 栈装载与 Q6 0 输出触点LPP 逻辑弹出栈 母线复原LDI3 1 装入常开出触点OI2 0 或常开触点ALD 栈装载与 Q1 3 输出触点 复杂逻辑指令的应用 返回 LPS后第一和最后一个从逻辑块不用LRD指令 5 3定时器 计数器和比较指令 5 3 1定时器指令接通延时定时器格式 TONTXXX PT有记忆接通延时定时器格式 TONRTXXX PT断开延时定时器格式 TOFTXXX PT 图5 9定时器指令在梯形图中的表示符号 表5 11定时器号和分辨率 定时时间的计算 T PT S T为实际定时时间 PT为预设值 S为分辨率等级 例如 TON指令用定时器T33 预设值为125 则实际定时时间T 125 10 1250ms 定时器指令操作数有3个 编号 预设值和使能输入 1 编号 用定时器的名称和它的常数编号 最大255 来表示 它还包含两方面的变量信息 定时器位和定时器当前值 定时器位 当定时器的当前值达到预设值PT时 该位被置为 1 定时器当前值 存储定时器当前所累计的时间 它用16位有符号整数来表示 故最大计数值为32767 2 预设值PT 数据类型为INT型 3 使能输入 只对LAD和FBD BOOL型可以用复位指令来对3种定时器复位 1 接通延时定时器指令 TON 用于单一间隔定时 上电周期或首次扫描 定时器位OFF 当前值为0 使能输入接通时 定时器位为OFF 当前值从0开始计数时间 当前值达到预设值时 定时器位为ON 当前值连续计数到32767 使能输入断开 定时器自动复位 即定时器位OFF 当前值为0 填 计定时器号 如 T35 填 预设值 如 100 指令格式 TONTxxx PT例 TONT120 8 返回 2 有记忆接通延时定时器指令 TONR 用于对许多间隔的累计定时 上电周期或首次扫描 定时器位OFF 当前值保持 使能输入接通时 定时器位为OFF 当前值从0开始累计计数时间 使能输入断开 定时器位和当前值保持最后状态 使能输入再次接通时 当前值从上次的保持值继续计数 当累计当前值达到预设值时 定时器位ON 当前值连续计数到32767 填 计定时器号 如 T31 填 预设值 如 100 TONR定时器只能用复位指令进行复位操作 使当前值清零 指令格式 TONRTxxx PT 例 TONRT20 63 3 断开延时定时器指令 TOF 用于断开后的单一间隔定时 上电周期或首次扫描 定时器位OFF 当前值为0 使能输入接通时 定时器位为ON 当前值为0 当使能输入由接通到断开时 定时器开始计数 当前值达到预设值时 定时器位OFF 当前值等于预设值 停止计数 TOF复位后 如果使能输入再有从ON到OFF的负跳变 则可实现再次启动 填 计定时器号 如 T35 填 预设值 如 100 指令格式 TOFTxxx PT 例TOFT35 6 4 应用定时器指令应注意的几个问题 不能把一个定时器号同时用作断开延时定时器 TOF 和接通延时定时器 TON 使用复位 R 指令对定时器复位后 定时器位为 0 定时器当前值为 0 有记忆接通延时定时器 TONR 只能通过复位指令进行复位 对于断开延时定时器 TOF 需要输入端有一个负跳变 由on到off 的输入信号启动计时 不同精度的定时器 它们当前值的刷新周期是不同的 5 3 2计数器指令增计数器指令格式 CTUCxxx PV减计数器指令格式 CTDCxxx PV增 减计数器指令格式 CTUDCxxx PV 图5 13计数器指令在梯形图中的表示符号 1 编号 用计数器名称和它的常数编号 最大255 来表示 即Cxxx 包含两方面的变量信息 计数器位和计数器当前值 计数器位 当计数器的当前值达到预设值PV时 该位被置为 1 计数器当前值 存储计数器当前所累计的脉冲个数 它用16位符号整数 INT 来表示 故最大计数值为32767 2 预设值PV 数据类型为INT型 3 脉冲输入 BOOL4 复位输入 与脉冲输入同类型和范围 计数器指令操作数有4个 1 增计数器指令 CTU 首次扫描 定时器位OFF 当前值为0 在增计数器的计数输入端 CU 脉冲输入的每个上升沿 计数器计数1次 当前值增加1个单位 当前值达到预设值时 计数器位ON 当前值继续计数到32767停止计数 复位输入有效或执行复位指令 计数器自动复位 即计数器位OFF 当前值为0 指令格式 CTUCxxx PV 例 CTUC20 3 填 计数器器号 如 C30 填 预设值 如 3 脉冲输入 复位输入 应用举例 LDI0 0 计数脉冲信号输入端LDI0 1 复位信号输入端CTUC20 3 增计数 计数设定值为3个脉冲LDC20 装入计数器触点 Q0 0 输出触点 图5 25增计数程序及时序 复位与计数脉冲同时有效时 优先执行复位 2 增减计数器指令 CTUD 该指令有两个脉冲输入端 CU输入端用于递增计数 CD输入端用于递减计数 CU输入的每个上升沿 计数器当前值增加1 CD输入的每个上升沿 都使计数器当前值减小1 当前值达到预设值时 计数器位ON 计数到32767 最大值 后 下一个CU输入的上升沿将使当前值跳变为最小值 32768 反之 当前值达到最小值 32768 时 下一个CD输入的上升沿将使当前值跳变为最大值 32767 复位输入有效或执行复位指令 计数器自动复位 即计数器位OFF 当前值为0 指令格式 CTUDCxxx PV 例 CTUDC30 5 返回 LDI0 0 增计数输入端LDI0 1 减计数输入端LDI0 2 复位端CTUDC30 5 增减计数 设定脉冲数为5LDC30 装入计数器触点 Q0 0 输出触点 应用举例 增减计数程序及时序 当前值大于 或小于 设定值后 仍然随计数脉冲而变化 而计数器位保持 3 减计数器指令 CTD 首次扫描 定时器位OFF 当前值为预设值PV 计数器检测到CD输入的每个上升沿时 计数器当前值减小1个单位 当前值减到0时 计数器位ON 停止计数 复位输入有效或执行复位指令 计数器自动复位 即计数器位OFF 当前值复位为预设值 而不是0 指令格式 CTDCxxx PV 例 CTDC40 4 应用举例 LDI0 0 减计数脉冲输入端LDI0 1 复位输入端CTDC40 4 减计数器 设定计数脉冲 数为4LDC40 装入计数器触点 Q0 0 输出触点 图5 27减计数程序及时序 当前值减到0后 计数脉冲对当前值和位都不起作用 0 4 4 2 2 3 3 4 4 1 4 应用举例 a 某自动门 内外侧各装一个超声波探测器 当探测到有人后0 5秒自动门打开 探测到无人后1秒 自动门关闭 b 由两个或多个定时器串联组成一个长时间定时器c 由定时器和计数器构成一个长时间的定时器d 利用计数器的串联构成扩展计数器e 利用特殊标志寄存器和计数器构成定时器f 脉冲发生器 5 3 3比较指令比较指令用于两个相同数据类型的有符号或无符号数IN1和IN2的比较判断操作 比较运算符有 等于 大于等于 大于 小于等于 小于 不等于 字节比较指令格式 LDB比较运算符IN1 IN2 AB比较运算符IN1 IN2 OB比较运算符IN1 IN2 5 3 3比较指令 整数比较指令格式 LDW比较运算符IN1 IN2 AW比较运算符IN1 IN2 OW比较运算符IN1 IN2 双整数比较指令格式 LDD比较运算符IN1 IN2 AD比较运算符IN1 IN2 OD比较运算符IN1 IN2 5 3 3比较指令 实数比较指令格式 LDR比较运算符IN1 IN2 AR比较运算符IN1 IN2 OR比较运算符IN1 IN2 应用举例 1 一自动仓库存放某种货物 最多6000箱 需对所存的货物进出计数 货物多于1000箱 灯L1亮 货物多于5000箱 灯L2亮 其中 L1和L2分别受Q0 0和Q0 1控制 数值1000和5000分别存储在VW20和VW30字存储单元中 本控制系统的程序如图5 30所示 程序执行时序如图5 31所示 LDI0 0 增计数出入端LDI0 1 减计数出入端LDI0 2 复位出入端CTUDC30 10000 增减计数 设定脉冲数为10000LDW C30 VW20 比较计数器 当前值是否大于等 于VW20中的值 1000 Q0 0 输出触点LDW C30 VW30 比较计数器 当前值是否大于等 于VW30中的值 5000 Q0 1 输出触点 图5 30程序举例 返回 时序图 图5 31时序图 举例2传送带控制 控制要求 运货车到位 开关闭合 传送带开始送工件 到3件时 推板机推工件到货车上 此时传送带停止运行 工件被推到货车后推板返回 传送带又开始运行 如此循环动作 输入信号 启动开关 I0 0件数检测仪 有工件时为0 I0 1货车到位 I0 2输出信号 传送带运行 Q0 0推板机 Q0 1 5 4运算指令 5 4 1算术运算指令 加 减 乘 除指令 1 加法指令 I 整数加法指令格式 IIN1 OUT D 双整数加法指令格式 DIN1 OUT R 实数加法指令格式 RIN1 OUT 在LAD和FBD中 以指令盒形式编程 执行结果 IN1 IN2 OUT 在STL中 通常将IN2与OUT共用一个地址单元 执行结果 IN1 OUT OUT 指令格式 IIN1 OUT 程序实例 LDI0 1 使能输入端MOVWVW0 VW4 VW0 VW4 IVW2 VW4 VW2 VW4 VW4 LAD中IN2和OUT可用同一单元 5 4 1算术运算指令 2 减法指令 I 整数减法指令格式 IIN2 OUT D 双整数减法指令格式 DIN2 OUT R 实数减法指令格式 RIN2 OUT 程序实例 指令格式 IIN2 OUT 整数减法 OUT IN2 OUT DIN2 OUT 双整数减法 RIN2 OUT 实数减法 LDI0 0 使能输入端 IVW2 VW0 整数减法 VW0 VW2 VW0 表5 16操作数执行前后的结果 5 4 1算术运算指令 3 乘法指令 I 整数乘法指令格式 IIN1 OUTMUL 完全整数乘法指令格式 MULIN1 OUT D 双整数乘法指令格式 DIN1 OUT R 实数乘法指令格式 RIN1 OUT 程序实例 完全整数乘法 常规乘法 指令 MUL LDI0 0 使能输入端 IVW0 VW2 整数乘法 VW0 VW2 VW2 使能输入有效时 将两个单字长 16位 的符号整数IN1和IN2相乘 产生一个32位双整数结果OUT 指令格式 IIN1 OUT 32位OUT的低位字 16位 被用作乘数 5 4 1算术运算指令 4 除法指令 I 整数除法格式 IIN2 OUTDIV 完全整数除法格式 DIVIN2 OUT D 双整数除法格式 DIN2 OUT R 实数除法格式 RIN2 OUT 在整数除法中 两个16位的整数相除 产生一个16位的整数商 不保留余数 双整数除法也同样过程 只是位数变为32位 在整数完全除法中 两个16位的符号整数相除 产生一个32位结果 其中 低16位为商 高16位为余数 32位结果的低16位运算前期被兼用存放被除数 程序实例 LDI0 0 使能输入端MOVW 12345 VW12 12345 VW12MOVW 100 VW20 100 VW20LDI0 1 使能输入端DIVVW20 VD10 VW12 VW20 VD1 整数完全除法例 5 4 1算术运算指令 递增和递减指令字节递增指令格式 INCBOUT字节递减指令格式 DECBOUT 图5 27字节递增和递减指令在梯形图中的表示 5 4 1算术运算指令 递增和递减指令字递增指令格式 INCWOUT字递减指令格式 DECWOUT 图5 28字递增和递减指令在梯形图中的表示 5 4 1算术运算指令 递增和递减指令双字递增指令格式 INCDOUT双字递减指令格式 DECDOUT 图5 29双字递增和递减指令在梯形图中的表示 5 4 2逻辑运算指令 字节逻辑运算指令ANDB 字节与指令格式 ANDBIN1 OUTORB 字节或指令格式 ORBIN1 OUTXORB 字节异或指令格式 XORBIN1 OUTINVB 字节取反指令格式 INVBOUT 图5 32字节逻辑运算指令在梯形图中的表示符号 5 4 2逻辑运算指令 字逻辑运算指令ANDW 字与指令格式 ANDWIN1 OUTORW 字或指令格式 ORWIN1 OUTXORW 字异或指令格式 XORWIN1 OUTINVW 字取反指令格式 INVWOUT 图5 33字逻辑运算指令在梯形图中的表示符号 5 4 2逻辑运算指令 双字逻辑运算指令ANDD 双字与指令格式 ANDDIN1 OUTORD 双字或指令格式 ORDIN1 OUTXORD 双字异或指令格式 XORDIN1 OUTINVD 双字取反指令格式 INVDOUT 图5 34双字逻辑运算指令在梯形图中的表示符号 5 5数据处理指令 5 5 1传送类指令 单一传送指令MOVB 字节传送指令格式 MOVBIN1 OUTBIR 字节立即读传送指令格式 BIRIN1 OUTBIW 字节立即写传送指令格式 BIWIN1 OUTMOVW 字传送指令MOVD 双字传送指令MOVR 实数传送指令 单一传送指令 BIR 输入映象寄存器不更新BIW 输出映象寄存器刷新 块传送指令BMB 字节块传送指令格式 BMBIN1 OUT NBMW 字块传送指令格式 BMWIN1 OUT NBMD 双字块传送指令格式 BMDIN1 OUT N 图5 36块传送指令在梯形图中的表示符号 5 5 2移位指令 左移和右移指令SLB字节左移指令格式 SLBOUT NSRB字节右移指令格式 SRBOUT NSLW字左移指令格式 SLWOUT NSRW字右移指令格式 SRWOUT NSLD双字左移指令格式 SLDOUT NSRD双字右移指令格式 SRDOUT N 左移和右移指令 图5 37左移和右移指令在梯形图中的表示符号 1 字节左移和字节右移指令 SLB SRB 使能输入有效时 把字节输入数据IN左移或右移N位后 再将结果输出到OUT所指的字节存储单元 在语句表中 IN与OUT使用同一个单元 最大实际可移位次数为8 指令格式 SLBOUT N 字节左移 SRBOUT N 字节右移 例 SLBMB0 2SRBLB0 3 以第一条指令SLBMB0 2为例 指令执行情况如表5 12所示 表5 12左移指令SLB执行结果 2 字左移和字右移指令 SLW SRW 指令盒与字节移位比较 只有名称变为SHLW和SHRW 最大实际可移位次数为16 指令格式 SLWOUT N 字左移 SRWOUT N 字右移 例 SLWMW0 2SRWLW0 3 返回 以第二条指令SRWLW0 3为例 指令执行情况如表5 13所示 表5 13右移指令SRW执行结果 3 双字左移和双字右移指令 SLD SRD 指令盒与字节移位比较 只有名称变为SHLDW和SHRDW 其他部分完全相同 最大实际可移位次数为32 指令格式 SLDOUT N 双字左移 SRDOUT N 双字右移 例 SLDMD0 2SRDLD0 3 循环左移和循环右移指令RLB字节循环左移指令格式 RLBOUT NRRB字节循环右移指令格式 RRBOUT N 图5 38字节循环左移和字节循环右移指令 循环左移和循环右移指令RLW字循环左移指令格式 RLWOUT NRRW字循环右移指令格式 RRWOUT NRLD双字循环左移指令格式 RLDOUT NRRD双字循环右移指令格式 RRDOUT N 1 字节循环左移和字节循环右移指令 RLB RRB 使能输入有效时 把字节型输入数据IN循环左移或循环右移N位后 再将结果输出到OUT所指的字节存储单元 在语句表中 IN与OUT使用同一个单元 指令格式 RLBOUT N 字节循环左移 RRBOUT N 字节循环右移 例 RLBMB0 2RRBLB0 3 2 字循环左移和字循环右移指令 RLW RRW 指令盒与字节循环移位只有名称变为ROLW和RORW 其他部分完全相同 使能输入有效时 把字型输入数据IN循环左移或循环右移N位后 再将结果输出到OUT所指的字存储单元 在语句表中 IN与OUT使用同一个单元 实际移位次数为设定值取以16为底的模所得的结果 指令格式 RLWOUT N 字循环左移 RRWOUT N 字循环右移 例 RLWMD0 2RRWLD0 3 3 双字循环左移和双字循环右移指令 RLD RRD 指令盒与字节循环移位只有名称变为ROLDW和RORDW 其他部分完全相同 使能输入有效时 把双字型输入数据IN循环左移或循环右移N位后 再将结果输出到OUT所指的双字存储单元 在语句表中 IN与OUT使用同一个单元 实际移位次数为设定值取以32为底的模所得的结果 指令格式 RLDOUT N 双字循环左移 RRDOUT N 双字循环右移 例 RLDMD0 2RRDLD0 3 返回 以指令RRWLW0 3为例 指令执行情况如表5 14所示 表5 14指令RRW执行结果 移位寄存器指令SHRB指令格式 SHRBDATA S BIT N 图5 39移位寄存器指令 3 寄存器移位 SHRB 寄存器移位指令 该指令在梯形图中有3个数据输入端 DATA为数值输入 将该位的值移入移位寄存器 SBIT为移位寄存器的最低位端 N指定移位寄存器的长度 每次使能输入有效时 整个移位寄存器移动1位 移位特点 移位寄存器长度在指令中指定 没有字节型 字型 双字型之分 可指定的最大长度为64位 可正也可负 移位数据存储单元的移出端与SM1 1 溢出 相连 所以最后被移出的位被放到SM1 1位存储单元 指令格式 SHRBDATA SBIT N例 SHRBI0 5 V20 0 5以本条指令为例 指令执行情况如表5 15所示 表5 15指令SHRB执行结果 应用举例 彩灯控制 1 六盏灯控制控制要求如下 按下启动按钮 按1 2 3 4 5 6顺序点亮 每1秒亮一盏灯 到全亮 再过1秒又按1至6的顺序每1秒灭1盏
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论