




已阅读5页,还剩308页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章S7 200的基本指令系统及编程 位操作类指令 运算类指令数据处理类指令表功能类指令转换类指令 7 1位操作类指令 1 指令格式及说明方式约定2 梯形图的基本绘制规则3 基本逻辑指令的作用及逻辑堆栈4 基本逻辑指令 位操作类指令 主要是指位操作及位运算指令 同时也包含与位操作密切相关的定时器和计数器指令 5 复杂逻辑指令6 定时器指令7 计数器指令8 比较指令 一 指令格式及说明方式约定1 本章所介绍的指令都给出了梯形图LAD 语句表STL两种最常用的编程语言的表达形式 部分指令给出了功能框图FBD形式 用以说明功能框图的应用特点 2 输入和输出数据的寻址范围在部分指令中加以描述 以节省篇幅 3 程序实例或应用实例中 一般是某个用户程序的程序片段 也有完整程序 为便于理解 左边 梯形图程序右边 对应的语句表程序及注释实际编程时只需选择一种编程语言即可 4 用语句表编程时 可用2条或2条以上斜线开始为每个程序行加注释和说明 5 用梯形图编程时 每条指令的EN和ENO的功能都相同 因此只在部分指令中加以描述 下面以整数加法指令为例 说明指令介绍的一般格式 整数加法指令为指令盒 指令名称 EN ENO IN1和IN2 数据类型 OUT 数据类型 当EN有效时执行整数加法操作 结果为IN1 IN2 OUT 在语句表STL中 整数加法指令为 IIN1 OUT执行结果为IN1 OUT OUT IN1和IN2的寻址范围 IW QW MW SMW SW W LW AIW T C AC VD AC常数 OUT的寻址范围 IW QW MW SMW SW W LW AIW T C AC VD AC 本指令的执行影响的特殊存储器位 SM1 0 零值标志 SM1 1 溢出标志 SM1 2 负值标志 影响允许输出ENO正常工作的出错条件 SM1 1 溢出标志 1SM4 3 运行时发现编程错误标志 1出现错误代码0006 间接寻址错误 LDI0 0 使能输入端 IVW0 VW4 整数加法 VW0 VW4 VW4 二 梯形图的基本绘制规则1 Network Network为网络段 后面的 为网络段编号 2 能流 使能在梯形图中有两种基本类型的输入输出 一种是能量流 另一种是数据 EN为能流输入 ENO为能流输出 均为布尔型数据 3 编程顺序梯形图按照从上到下 从左到右的顺序绘制 4 编号分配对外部输入 输出设备分配编号 编号的分配必须是主机或扩展模块本身实际提供的 而且是用来进行编程的 5 内 外触点的配合在梯形图中选择输入继电器的触点类型 内部触点 与两方面的因素有关 一是输入设备的触点类型 外部触点 二是控制电路的实际通断要求 输入设备的触点类型与输入继电器触点类型的 异或结果 决定了控制电路的实际通断 6 触点的使用次数在梯形图中 同一编程元件的常开 动合 常闭 动断 触点可以任意多次重复使用 不受限制 第四章提到的软器件 7 线圈的使用次数在绘制梯形图时 不同的多个继电器线圈可以并联输出 但同一个继电器的线圈不能重复使用 8 线圈的连接 主要采用并联连接 三 基本逻辑指令的作用及逻辑堆栈基本逻辑指令在语句表中是指对位存储单元的简单逻辑运算 在梯形图中是指对触点的简单连接和对标准线圈的输出 堆栈是一组能够存储和取出数据的暂时存储单元 存取特点后进先出堆栈结构如下表所示 四 基本逻辑指令主要包括标准触点指令 正负跳变指令置位和复位指令 立即指令主要是与位相关的输入输出及触点的简单连接 1 标准触点指令LD LDN A AN O ON NOT 这些指令对存储器位在逻辑堆栈中进行操作 如果数据类型是输入继电器I或输出继电器Q 则从映像寄存器存取数值 操作数为BOOL型 编址范围 I Q M SM T C S V L LD 装入常开触点 LoaD 指令格式 LDbitLDN 装入常闭触点 LoaDNot 指令格式 LDNbit梯形图中每个从左母线开始的 单一逻辑行 每个程序块 逻辑梯级 的开始 指令盒的输入端 都必须使用LD和LDN这两条指令 这两条指令对各类内部编程元件的触点都适用 A串联一个常开触点 And 可连续使用 但是由于打印纸宽度限制 梯形图每行串联不要超过8个元件指令格式 Abit AN串联一个常闭触点 AndNot 可连续使用 但是使用原则同A 指令格式 ANbit O并联一个常开触点 Or 可连续使用 但由于打印纸长度限制 梯形图每个网络并联不要超过8个元件指令格式 Obit ON并联一个常闭触点 OrNot 可连续使用 但是使用原则同O 指令格式 ONbit NOT触点取非 输出反相 在梯形图中用来改变能流的状态取非触点左端的逻辑运算结果为1时 即有能流 触点断开能流 反之能流可以通过 指令格式 NOT NOT指令无操作数 输出指令将逻辑运算结果输出到指定存储器位或输出映像寄存器 以驱动线圈指令格式 bit在语句表中 LD LDN A AN O ON NOT这几条指令的执行对逻辑堆栈的影响分别如表5 4 表5 5其后的说明 AI0 2的执行 程序实例 介绍标准触点指令在梯形图 语句表和功能块图3种语言编程中的应用 其梯形图和语句表程序如图所示 其功能块图和语句表程序如图所示 Q0 0 I0 0 I0 1 I0 2Q0 3 Q0 1Q0 1 I0 0 I0 1 I0 2 Q0 0 Q0 3 I0 0 I0 1 I0 2 2 正负跳变指令 在梯形图中以触点形式表示用于检测脉冲的正跳变 上升沿 或负跳变 下降沿 利用跳变让能流接通一个扫描周期 即可以产生一个扫描周期长度的微分脉冲常用此脉冲触发内部继电器线圈 EU正跳变指令正跳变触点检测到脉冲的每一次正跳变后 产生一个微分脉冲 指令格式 EU 无操作数 ED负跳变指令 负跳变触点检测到脉冲的每一次负跳变后 产生一个微分脉冲 指令格式 ED 无操作数 应用举例 下图是跳变指令的程序片断和指令执行的时序 LDI0 0EU Q0 0 LDI0 0ED Q0 1 3 置位和复位指令 置位即置1 复位即置0 这两条指令在使用时需指明三点 操作性质 开始位和位的数量 S置位指令将位存储区的指定位 位bit 开始的N个同类存储器位置位指令格式 Sbit N R复位指令将位存储区的指定位 位bit 开始的N个同类存储器位复位 如果是对定时器T位或计数器C位进行复位 则定时器位或计数器位被复位 同时 定时器或计数器的当前值被清零 指令格式 Rbit N Sbit NRbit N注意 在存储区的一位或多位被置位后 不能自己恢复 必须用复位指令使之由1跳回到0 Q1 0 I0 0 I0 1Q0 0 SET I0 0 I0 1Q0 2 Q0 4 RESET I0 0 I0 1 I0 0 I0 1 Q0 0 Q1 0 Q0 2 Q0 4 立即指令允许对输入和输出点进行快速和直接存取当用立即指令读取输入点的状态时 相应的输入映像寄存器中的值并未发生更新 用立即指令访问输出点时 访问的同时 相应的输出寄存器的内容也被刷新 4 立即指令 注意 只有输入继电器I和输出继电器Q可以使用立即指令 LDI LDNI AI ANI OI和ONI立即触点指令指令格式 LDIbit注意 bit只能是I类型 I 立即输出指令 指令格式 Ibit注意 bit只能是Q类型SI 立即置位指令 指令格式 SIbit N注意 bit只能是Q类型RI 立即复位指令 指令格式 RIbit N注意 bit只能是Q类型 Q0 0 I0 0 LD Q0 1 II0 0Q0 2 1SII0 0Q0 3 I0 0 LDI 五 复杂逻辑指令主要用来对触点进行复杂连接对逻辑堆栈也可以实现非常复杂的操作 ALD 栈装载与指令 与块 在梯形图中用于并联电路块的串联连接 指令格式 ALD2 OLD 栈装载或指令 或块 在梯形图中用于串联电路块的并联连接 指令格式 OLD在语句表中指令ALD OLD执行情况如下表所示 指令ALD 指令OLD 3 LPS 逻辑推入栈指令在梯形图的分支结构中 用于生成一条新的母线 左侧为主控逻辑块时 第一个完整的从逻辑行从此处开始 指令格式 LPS4 LPP 逻辑弹出栈指令在梯形图的分支结构中 用于将LPS指令生成的母线进行恢复 指令格式 LPP在语句表中指令LPS LPP执行情况如下表所示 注意 使用LPS指令时 本指令为分支的开始 以后必须有分支结束指令LPP 即LPS与LPP指令必须成对出现 指令LPS 指令LPP 5 LRD 逻辑读栈指令在梯形图的分支结构中 当左侧为主控逻辑块时 开始第二个和后边更多的从逻辑块 指令格式 LRD在语句表中指令执行情况如下表所示 6 LDS 装入堆栈指令编程时较少使用指令格式 LDSn n为0 8的整数 在语句表中LRD LDS执行情况如下表所示 指令LRD 指令LDS4 右图是复杂逻辑指令在实际应用中的一段程序 基本逻辑指令程序示例 例7 4边沿微分指示 LDI0 1EU M0 0LDM0 0SQ0 01LDI0 2ED M0 1LDM0 1RQ0 01 例7 5简单的报警电路 例7 6用置位 复位指令实现顺序控制 LDI0 0ANM0 0SM0 0 2 LDM0 1AV0 1RM0 1 1SM0 2 1 LDM0 2AV0 2RM0 2 1SM0 3 1 LDM0 3AV0 3RM0 3 1RM0 0 1 例7 7二分频电路 a b 例7 8采用顺序控制思想 应用置位 复位指令和边沿微分指令实现多分频控制 7 2定时器指令 S7 200提供3种定时器指令 TON TONR和TOF 每种定时器有3个精度等级 1ms 10ms和100ms 定时器精度等级和地址编号之间的关系如下表所示 指令格式TONTxxx PTPT用于单一间隔的定时上电周期或首次扫描时 状态位OFF 当前值为0 TON 接通延时定时器指令 允许输入接通时 状态位OFF 当前值从0开始定时 当前值达到预设值时 状态位ON 当前值继续递增到32767并保持 允许输入断开时定时器自动复位 即状态位OFF 当前值为0 例 TONT35 40 允许输入再次接通时 当前值从保持值继续定时 当累积当前值达到预设值时 状态位ON 当前值继续计数到32767并保持 TONR 接通延时保持定时器指令 指令格式 TONRTxxx PT例TONRT2 100 TONR只能用复位指令进行复位 用于多个间隔的累积定时 上电周期或首次扫描时 状态位OFF 当前值为0 允许输入接通时 状态位OFF 当前值从0开始定时 允许输入断开时状态位和当前值保持最后状态 用于单个间隔的定时上电周期或首次扫描时 状态位OFF 当前值为0允许输入接通时 状态位ON 当前值为0 允许输入断开时 定时器从0开始定时 当前值达到预设值时 状态位OFF 当前值保持预设值 停止定时 TOF 断电延时定时器指令 指令格式 TOFTxxx PT例 TOFT36 3 LDI0 0TONT35 4 T 4 10ms LDI0 0TONRT2 4 T 10 10ms LDI0 0TOFT36 4 T 3 10ms 例1 有的厂商提供的PLC只有TON定时器 因此 在这种情况下可以利用TON来构造断电延时型的各种触点 用TON构造各种类型的时间继电器触点 例2 用通电延时定时器与输出继电器组成带瞬动触点的定时器 本程序实现的功能是 用输入端I0 0控制输出端Q0 0 当I0 0接通后 过3个时间单位Q0 0端输出接通 当I0 0断开后 过6个时间单位Q0 0断开 利用常开触点实现通电和断电都延时的触点作用 LDI0 0 启动定时TONT33 100 一级通电 延时时间为1000msLDT33 启动定时TONT34 200 二级通电 延时时间为2000ms 例3 扩大延时范围 例4 三台电动机按顺序起动 电机M1先起动 运行20秒后 M2起动 再经30秒后 M3起动 LDM0 0 Q0 1 M1通电TONT40 200 延20sLDT40 Q0 2 M2通电TONT41 300 延30sLDT41 Q0 3 7 3 计数器指令 S7 200提供3种计数器指令 CTU CTD和CTUD 1 首次扫描时 状态位OFF 当前值为0 2 在脉冲输入的每个上升沿 当前值增加1 3 当前值达到预设值时 状态位ON 当前值继续计数到32767停止 4 复位输入有效或执行复位指令 计数器自动复位 即状态位OFF 当前值为0例 CTUC20 3 1 CTU 增计数器指令 指令格式 CTUCxxx PV CU 计数脉冲 信号输入端R 复位信号输入端 CU CTU R PV 3 C20 I0 0 I0 1 C20 Q0 0 网络2 网络1 I0 0 I0 1 C20当前值 C20位 1 首次扫描时 状态位OFF 当前值等于预设值PV 2 在脉冲输入的每个上升沿 计数器当前值减1 当前值减到0时 状态位ON 3 装载输入有效或执行复位指令时 计数器自动装载 即状态位OFF 当前值为预设值 2 CTD 减计数器指令 指令格式 CTDCxxx PV例 CTDC40 4 首次扫描时 状态位OFF 当前值为0 有两个脉冲输入端 CU用于递增计数 CD用于递减计数当前值达到预设值时 状态位ON 复位输入有效或执行复位指令时 计数器自动复位 即状态位OFF 当前值为0 3 CTUD增减计数器指令 指令格式 CTUDCxxx PV例 CTUDC30 5 I0 0 I0 1 I0 2 C30 Q0 0 C30 CTUD CU CD R PV 5 LDI0 0LDI0 1LDI0 2CTUD30 5 LDC30 Q0 0 CU I0 0CD I0 1RESET I0 2PV 5 I0 0 I0 1 I0 2 C30当前值 C30位 例1 用计数器和定时器配合增加延时时间 7 4 比较指令 用于两个相同类型数据大小的比较判断 结果为真时 允许能流通过 1字节比较指令指令格式 LDB VB10 VB12ABMB0 MB1OBSB1 MB6 2整数比较指令指令格式 LDW VW10 VW12AWMW0 MW4OW AC2 1160 双整数比较指令指令格式 LDD VD10 VD14ADMD0 MD8OD HC0 AC0 实数比较指令指令格式 LDR VD10 VD18ARMD0 MD12OR AC1 VD100 例 一自动仓库存放货物 最多6000箱现在需要对所存的货物进出计数 货物多于1000箱时灯L1亮 货物多于5000箱时灯L2亮 其中 L1和L2分别受Q0 0和Q0 1控制 数值1000和5000分别存储在VW20和VW30字存储单元中 7 21用比较指令实现脉冲输出电路 例7 18用按钮控制一盏灯 按下5次后灯亮 再按3次后灯灭 依次循环反复 用计数指令完成 例7 22用按钮控制一盏灯 按下5次后灯亮 再按3次后灯灭 依次循环 用比较指令完成 例7 23十字路口交通灯的控制 东西向绿灯Q0 0 东西向黄灯Q0 1 东西向红灯Q0 2 南北向绿灯Q0 3 南北向黄灯Q0 4 南北向红灯Q0 5 7 5数据处理类指令 数据处理类指令包括传送 移位 字节交换 循环移位和填充指令 一 传送类指令 指令格式 MOVBIN OUTMOVWIN OUT允许输入有效时 将1个字节型 或字长 数据传送到OUT指定的字节 或字 存储单元 例 MOVWVW0 VW4 1 单一传送 指令格式 MOVDIN OUTMOVRIN OUT允许输入有效时 将1个双字长 或实数 数据传送到OUT指定的双字存储单元 例 MOVRVD0 VD4 指令格式 BIRIN OUTBIWIN OUT允许输入有效时 立即读取外部输入字节单元的内容传给OUT字节单元 或把一个字节的数据立即传送到外部输出字节 例 BIRIB0 VB4BIWMB2 QB0 指令格式 BMBIN OUT NBMWIN OUT NBMDIN OUT N允许输入有效时 将从IN开始的N个字节型 或字长 双字长 数据传送到OUT开始的N个字节 或字 双子 存储单元 例 BMBVB0 VB40 20 2 块传送 二转换类指令 数值量数据类型转换编码和译码七段码数值量数据字符串数据的转换 转换包括 一 数值量数据类型转换指令 1 字节型与整型转换指令 指令格式 BTIIN OUTITBIN OUT允许输入有效时 将字节型输入转换成整型输出 或将整型输入转换成字节型输出 例 BTIAC0 VW10 2 整型与双整型转换指令 指令格式 ITDIN OUTDTIIN OUT允许输入有效时 将整型输入转换成双整型输出 或将双整型输入转换成整型输出 例 ITDVW10 AC0 3 双整型与实数型转换指令 指令格式 DTRIN OUTROUNDIN OUTTRUNCIN OUT允许输入有效时 将双整型输入转换成实数型输出 或将实数型输入转换成双整型输出 例 ROUNDVD10 AC0 4 整型与BCD码转换指令 指令格式 IBCDOUTBCDIOUT允许输入有效时 将整型输入转换成BCD码输出 或将BCD码输入转换成整型输出 例 IBCDAC0 二 编码与译码指令 1 编码指令 指令格式 ENCOIN OUT允许输入有效时 将字型输入的最低有效位 值为1的位 的位号进行编码 结果放入OUT字节单元的低4位 例 ENCOAC0 VB0 2 译码指令 指令格式 DECOIN OUT允许输入有效时 将字节型输入的低4位内容翻译成位号 然后对字型输出的对应位置1 例 DECOVB0 AC0 三 七段码指令 指令格式 SEGIN OUT允许输入有效时 将字节型输入的低4位所表示的数值转换成相应的七段码 存放到OUT指定的字节单元 例 SEGVB0 AC0 四 数值量数据与字符串数据转换指令 1 ASCII码转换16进制指令2 16进制到ASCII码3 整数到ASCII码4 双整数到ASCII码5 实数到ASCII码 1 ASCII码转换成16进制数指令 指令格式 ATHIN OUT LEN允许输入有效时 把从IN指定字节开始的 长度为LEN的ASCII码转换为16进制数 结果存放到OUT开始的字节单元 例 ATHVB10 VB20 3 7 7 移位指令 7 7 1左移 右移指令 左移 右移指令的功能是将输入数据向左或向右移动N位后 将结果送入OUT中 移位时 移出位进入SM1 1 另一端自动补零 例如右移时 移位数据的最右端位移入SM1 1 左端每次补零 SM1 1始终存放最后一次被移除的位 移位次数如果大于移位数据的位数 超出次数无效 移位指令影响的特殊存储器位 SM1 0 零 SM1 1 溢出 ENO断开的出错条件 SM4 3 运行时间 0006 间接寻址 移位次数N为字节型数据 指令格式 SLBOUT NSRBOUT N允许输入有效时 将1个字节型数据右移 或左移 N位 例 SLBMB0 2SRBMB1 3 1 字节移位指令 指令格式 SLWOUT NSRWOUT N允许输入有效时 将1个字型数据左移 或右移 N位 例 SLWVW0 2SRWLW0 3 2 字移位指令 指令SRW执行结果 指令格式 SLDOUT NSRDOUT N允许输入有效时 将1个双字型数据左移 或右移 N位 例 SLDVD0 2SRDMD4 3 3 双字移位指令 左移 右移指令示例 LDI0 0EUSRBMB1 1MOVWVW100 VW102SLWVW102 1 移位前MB1 01011101 移位后MB1 00101110SM1 1 1 移位前VW100 1100010111010001 传送指令VW102 1100010111010001 移位后VW102 1000101110100010 SM1 1 1 7 7 2循环移位指令 循环左移 右移指令的功能是将输入数据向左或向右循环移动N位后 将结果送入OUT中 移位时 移位数据存储单元的移出端与另一端相连 同时也与SM1 1相连 移出位被移到另一端的同时 也进入SM1 1 例如右移时 移位数据的最右端位移入最左端 同时也进入SM1 1 SM1 1始终存放最后一次被移除的位 移位次数如果大于移位数据的位数 系统将自动求取实际循环次数 移位指令影响的特殊存储器位 SM1 0 零 SM1 1 溢出 ENO断开的出错条件 SM4 3 运行时间 0006 间接寻址 移位次数N为字节型数据 指令格式 RLBOUT NRRBOUT N允许输入有效时 将1个字节型数据循环左移 或右移 N位 例 RLBMB0 2RRBLB0 3 1 字节循环移位指令 指令格式 RLWOUT NRRWOUT N允许输入有效时 将1个字型数据循环左移 或右移 N位 例 RLWMW0 2RRWLW0 3 2 字循环移位指令 指令RRW执行结果 指令格式 RLDOUT NRRDOUT N允许输入有效时 将1个双字型数据循环左移 或右移 N位 例 RLDMD0 2RRDLD0 3 3 双字循环移位指令 7 7 3移位寄存器指令 移位寄存器SHRB使用比较灵活 移位寄存器长度在指令中指定 没有字节型 字型 双字型之分 移位时 移位数据存储单元的移出端与SM1 1相连 移出位被移至SM1 1 另一端自动补以DATA移入位的值 移位方向分为正向和反向 正向移位时长度N为正值 移位是从最低字节的最低位S BIT移入 从最高字节的最高位移出 反向移位时长度N为正负值 移位是从最高字节的最高位移入 从最低字节的最低S BIT位移出 最高位的计算方法 MSB字节号 S BIT字节号 N的绝对值 1 S BIT位号 8 的商MSB位号 N的绝对值 1 S BIT位号 8 的余数 允许输入有效时 如果是正向移位 则移位寄存器的内容由低向高移动1位 如果是反向移位 则移位寄存器的内容由高向低移动1位 7 移位寄存器指令 指令格式 SHRBDATA S BIT N 例 SHRBI0 5 V20 0 5 SHRBI0 5 V20 0 5 Q0 3 Q0 2 Q0 1 Q0 0 MSB LSB I0 0 Q0 0 Q0 1 Q0 2 Q0 3 用一个开关控制6盏灯 开关闭合时 依次点亮开关断开时 按相反顺序依次熄灭 间隔1秒 其控制要求为 第1根亮 第2根亮 第3根亮 第8根亮 即每隔1s依次点亮 全亮后 闪烁1次 灭1s亮1s 再反过来按8 7 6 5 4 3 2 1反序熄灭 时间间隔仍为1s 全灭后 停1s 再从第1根灯管点亮 开始循环 图8 1某广告牌霓虹灯 广告牌循环彩灯的PLC控制 应用举例 1 系统I O分配 2 PLC电气接线图 3 控制程序 三 字节交换指令 指令格式 SWAPIN允许输入有效时 将字型输入数据的高位字节与低位字节内容进行交换 例 SWAPVW10 指令SWAP执行结果 四 填充指令 指令格式 FULLIN OUT N允许输入有效时 将单字长数据IN填充到OUT开始的N个字存储单元 例 FILL1000 VW100 12 7 6运算类指令 一 加法二 减法三 乘法四 除法 运算类指令包括算术运算指令和逻辑运算指令 算术运算包括加 减 乘 除 数学函数和增减运算 逻辑运算包括与 或 非和异或运算 五 数学函数六 增减七 逻辑运算 IIN1 OUT允许输入有效时 将两个单字长 16位 的有符号整数相加 产生一个16位整数和结果 例 IVW0 VW4 1 I整数加法 一 加法运算指令 LDI0 0 使能输入端 IVW0 VW4 整数加法 VW0 VW4 VW4 I0 0 ADD I ADD I EN ENO VW0 VW4 VW4 IN1 IN2 OUT 允许输入有效时 将两个双字长 32位 的有符号双整数相加 产生一个32位双整数和结果 2 D 双整数加法 指令格式 DIN1 OUT例 DVD0 VD4 允许输入有效时 将两个双字长 32位 的实数相加 产生一个32位实数和结果 3 R 实数加法 指令格式 RIN1 OUT例 RVD0 VD4 二 减法运算指令 允许输入有效时 将两个单字长 16位 的有符号整数相减 产生一个16位整数差结果 1 I 整数减法 指令格式 IIN2 OUT 例 IAC0 VW4 允许输入有效时 将两个双字长 32位 的有符号双整数相减 产生一个32位双整数差结果 2 D 双整数减法 指令格式 DIN2 OUT 例 DAC0 VD4 指令格式 RIN2 OUT允许输入有效时 将两个双字长 32位 的实数相减 产生一个32位实数差结果 3 R 实数减法 例 RAC0 VD4 三 乘法运算 指令格式 IIN1 OUT允许输入有效时 将两个单字长 16位 的有符号整数相乘 产生一个16位整数积结果 1 I 整数乘法 例 IAC0 VW4 指令格式 DIN1 OUT允许输入有效时 将两个双字长 32位 的有符号双整数相乘 产生一个32位双整数积结果 2 D 双整数乘法 例 DAC0 VD4 指令格式 RIN1 OUT允许输入有效时 将两个双字长 32位 的实数相乘 产生一个32位实数积结果 3 R 实数乘法指令 例 RAC0 VD4 四 除法运算指令 指令格式 IIN2 OUT允许输入有效时 将两个单字长 16位 的有符号整数相除 产生一个16位整数商结果 1 I 整数除法指令 例 IAC0 VW4 指令格式 DIN2 OUT允许输入有效时 将两个双字长 32位 的有符号双整数相除 产生一个32位双整数商结果 2 D 双整数除法指令 例 DAC0 VD4 指令格式 RIN2 OUT允许输入有效时 将两个双字长 32位 的实数相除 产生一个32位实数商结果 3 R 实数除法指令 例 RAC0 VD4 指令格式 MULIN1 OUT允许输入有效时 将两个单字长 16位 的有符号整数相乘 产生一个32位双整数积结果 MUL 整数完全乘法 例MULVW0 VD2 指令格式 DIVIN2 OUT允许输入有效时 将两个单字长 16位 的有符号整数相除 产生一个32位的余数和商结果 DIV整数完全除法 例DIVVW0 VD2 LDI0 0MOVWVW10 VW32MULVW20 VD30MOVWAC0 VW202DIVVW100 VD200 五 数学函数指令 指令格式 SQRTIN OUT允许输入有效时 将一个双字长 32位 的实数开平方 产生一个32位实数平方根结果 1 SQRT 求平方根 例 SQRTAC0 VD4 指令格式 LNIN OUT允许输入有效时 将一个双字长 32位 的实数求自然对数 产生一个32位实数结果 LN求自然对数 例 LNAC0 VD4 指令格式 EXPIN OUT允许输入有效时 将一个双字长 32位 的实数求自然指数 产生一个32位实数结果 3 EXP求自然指数 例 EXPAC0 VD4 4 SIN COS TAN 分别为正弦 余弦 正切指令 例 SINAC0 VD4 指令格式 SININ OUTCOSIN OUTTANIN OUT允许输入有效时 将一个双字长 32位 的实数求三角函数 产生一个32位实数结果 六 增减指令 1 INCB DECB 分别为字节增 减指令 指令格式 INCBOUTDECBOUT允许输入有效时 将一个字节长 8位 的无符号数增加1 减少1 产生一个8位无符号数结果 例 INCBVB4 指令格式 INCWOUTDECWOUT允许输入有效时 将一个字长 16位 的无符号数增加1 减少1 产生一个16位无符号数结果 例 INCWVW4 2 INCW DECW字增 减指令 指令格式 INCDOUTDECDOUT允许输入有效时 将一个双字长 32位 的无符号数增加1 减少1 产生一个32位无符号数结果 3 INCD DECD双字增 减指令 例 INCDVD100 LDI0 0LDC30CTU 24LDC30INCDD100 七 逻辑运算指令 1 字节逻辑运算指令 指令格式 ANDBIN1 OUTORBIN1 OUTXORBIN1 OUTINVBOUT 允许输入有效时 将两个 或1个 字节型数据按位进行逻辑运算 产生一个字节型数据结果 例 ANDBVB0 AC1ORBVB0 AC0 指令格式 ANDWIN1 OUTORWIN1 OUTXORWIN1 OUTINVWOUT 2 字逻辑运算指令 允许输入有效时 将两个 或1个 字型数据按位进行逻辑运算 产生一个字型数据结果 例 ANDWVW0 AC1ORWVW0 AC0 允许输入有效时 将两个 或1个 双字型数据按位进行逻辑运算 产生一个双字型数据结果 例 ANDDVD0 AC1ORDVD0 AC0 3 双字逻辑运算指令 指令格式 ANDDIN1 OUTORDIN1 OUTXORDIN1 OUTINVDOUT LDI0 0MOVBMB1 MB3ANDBMB2 MB3ORWVW100 VW102MOVDVD200 VD208XORDVD204 VD208MOVBVB10 AC0INVBAC0 7 8程序控制类指令 空操作指令结束及暂停指令看门狗复位指令跳转指令子程序指令程序循环指令顺序控制继电器指令与ENO指令 7 8 1结束指令 指令格式 END 无操作数 MEND 无操作数 END 条件结束指令 允许输入有效时 终止主程序执行 返回主程序起点 MEND 无条件结束指令 终止主程序的执行 返回主程序起点用Micro Win32编程时 编程人员不需手工输入MEND指令 注意事项1 结束指令只能用在主程序中 不能用在子程序和中断程序中 而条件结束指令可用在无条件结束前结束主程序 2 调试程序时 在程序的适当位置插入无条件结束指令 可分段调试程序 3 可以利用程序的结果状态 系统状态或外部设置等作为条件结束指令的输入 4 使用编程软件编程时 不需手工输入无条件结束指令 编译时会自动添加到到主程序的结尾 7 8 2 子程序指令 建立子程序子程序调用带参数的子程序调用 1 建立子程序 可用编程软件Edit菜单中的Insert选项 选择Subroutine 以建立或插入一个新的子程序 同时在指令树窗口可以看到新建的子程序图标 默认的程序名是SBR n 编号n从0开始按递增顺序生成 可以在图标上直接更改子程序的程序名 在指令树窗口双击子程序的图标就可对它进行编辑 2 子程序调用 子程序调用指令CALLSBR n子程序条件返回指令CRET子程序无条件返回指令RET 下图所示的程序实现用外部控制条件分别调用两个子程序 调用带参数的子程序时需要设置调用的参数 参数在子程序的局部变量表中定义参数由地址 参数名称 变量类型和数据类型描述 子程序最多可传递16个参数 3 带参数的子程序调用 参数名称最多用8个字符表示 第一个字符不能是数字 变量类型 传入子程序参数 IN 传入和传出子程序参数 IN OUT 传出子程序参数 OUT 暂时变量 TEMP 4种类型 4种变量类型的参数在局部变量表中的位置必须按IN IN OUT OUT TEMP的先后顺序排列 数据类型 布尔型 字节型 字型 双字型 整型 双整型 实型 字节型 字型 双字型分别指明一个1 2或4字节的无符号整数参数 整型 双整型分别指明2或4字节的有符号整数参数 实型数据类型指明4字节的单精度IEEE浮点参数 局部变量表 LDI0 0CALLSBR 0 I0 2 VB20 VD30 七 程序循环指令 循环开始指令FORINDX INIT FINAL循环结束指令NEXT 一 空操作指令 NOP 空操作指令 允许输入有效时 执行空操作指令 空操作指令不影响用户程序的执行 操作数N是标号 是一个0 255的常数 指令格式 NOPN例 NOP30 STOP 暂停指令 允许输入有效时 该指令使主机CPU的工作方式由RUN切换到STOP方式 从而立即终止用户程序的执行 STOP指令在梯形图中以线圈形式编程 指令不含操作数 指令的执行不考虑对特殊标志寄存器位和能流的影响 指令格式 STOP 无操作数 返回本节 暂停指令 注意事项STOP指令可以用在主程序 子程序和中断程序中 在中断程序或子程序中执行STOP指令时 中断程序或子程序立即终止 并忽略全部等待执行的中断 返回主程序继续执行主程序的剩余部分 并在主程序的结束处 完成从RUN方式到STOP方式的转换 四 看门狗复位指令 WDR 看门狗复位指令 当允许输入有效时 执行WDR指令 每执行一次 看门狗定时器就被复位一次 可用以延长扫描周期 从而可以有效避免看门狗超时错误 指令格式 WDR 无操作数 程序实例 指令STOP END WDR的应用如下图所示 LDSM5 0 检查I O错误OSM4 3 运行时刻检查 编程OI0 3 外部切换开关STOP 条件满足 由RUN 切换到STOP方式LDI0 5 外部停止控制END 停止程序执行 LDM0 4 用触点重新触发WDR 看门狗定时器 五 跳转指令 跳转开始指令JMPn 允许输入有效时 使程序流程跳到指定标号n处执行 执行跳转指令时 逻辑堆栈的栈顶值总是1 跳转标号指令LBLn 标记程序段 作为跳转指令执行时跳转到的目的位置 取值0 255 注意事项1 跳转指令和标号指令只能使用在同一程序块中 不能在不同的程序块中互相跳转 2 执行跳转后 被跳过程序段的各元器件的状态为 Q M S C等元器件的位保持跳转前状态 计数器C停止计数 当前值保持跳转前的状态 对定时器来说 因刷新方式不同而工作状态不同 注意事项1 如果起动了FOR NEXT循环 除非在循环内部修改了结束值 否则循环就一直进下去 直到结束 2 再次启动时 它将初始值INIT传送到指针INDX中 3 FOR指令必须和NEXT指令配套使用 4 FOR和NEXT允许循环嵌套 最多可嵌套8层 但各个嵌套之间一定不可有交叉现象 八 顺序控制继电器指令 段开始指令LSCRS 段转移指令SCRTSx x段结束指令SCRE 注意事项1 顺序控制继电器指令仅对S有效 2 不能把同一个S位用于不同的程序中 3 在顺序控制继电器指令段不能使用跳转指令和标号指令 4 在顺序控制继电器指令段不能使用FOR NEXT和END指令 5 在状态位发生转移后 所有的段的元件一般也要复位 如果希望继续输出 可使用置位 复位指令 例 根据舞台灯光效果的要求 控制红 绿 黄三色灯 要求 红灯先亮 2s后绿灯亮 再过3s后黄灯亮 待红 绿 黄灯全亮3min后 全部熄灭 试用顺序控制指令设计其控制程序 九 与ENO指令 ENO梯形图和功能块图编程时指令盒的布尔能流输出端 如果指令盒的能流输入有效 同时执行没有错误 ENO就置位 将能流向下传递 当用梯形图编程时 且指令盒后串联一个指令盒或线圈 语句表语言中用AENO指令描述 指令格式 AENO 无操作数 AENO只能在语句表中使用 将栈顶值和ENO位进行逻辑与运算 结果保存到栈顶 5 2特殊指令 时钟指令中断指令通信指令高速计数器指令高速脉冲输出指令PID回路指令 一 时钟指令 TODR 读实时时钟指令 允许输入有效时 系统读当前时间和日期 装入一个以T为起始字节的8字节缓冲区TODW 写实时时钟指令 用来设定实时时钟 允许输入有效时 系统将包含当前时间和日期的一个8字节缓冲区将装入时钟 时钟缓冲区 例 控制要求 编写一段程序 可实现读 写实时时钟 并以BCD码显示分钟 时钟缓冲区从VB100开始 程序中的子程序SBR 0为写时钟子程序 将当前时间写入从VB100开始的8字节时间缓冲区 时间设置如下表所示 程序实现 读写时钟程序下图所示 读写时钟 二 中断指令 1 中断源及种类中断源 即中断事件发出中断请求的来源 S7 200具有最多34个中断源 每个中断源都分配一个编号用以识别 称为中断事件号 这些中断源大致分为三大类 通信中断 输入 输出中断 时基中断 2 中断优先级中断优先级由高到低依次是 通信中断输入 输出中断时基中断每类中断中的不同中断事件又有不同的优先级 主机中的所有中断事件及优先级如下表所示 中断事件及优先级 中断事件及优先级 中断队列和每个队列的最大中断数 中断队列的溢出位 3 中断调用即响应中断程序 使系统对特殊的内部或外部事件作出响应 系统响应中断时自动保护现场 中断处理完成时 又自动恢复现场 中断调用指令 中断允许指令 ENI 中断禁止指令 DISI 中断连接指令 ATCH 中断分离指令 DTCH 中断返回指令 CRETI RETI 进入RUN模式时 所有中断被禁止 ENI指令可以全局地允许所有被连接的中断事件 DISI指令全局性地允许中断排列等候 但不允许执行中断程序 直到用全局中断允许指令ENI重新激活中断 把一个中断事件 EVNT 和一个中断程序 INT 连接起来 并允许这个中断事件 中断分离指令DTCH用来断开一个中断事件 EVNT 和所有的中断程序 INT 之间的联系 并禁止了该中断事件 在控制它的逻辑条件满足时 从中断程序返回 编程软件自动为各中断程序添加无条件返回指令 中断调用程序 4 中断程序中断程序必须由三部分构成 中断程序标号 中断程序指令和无条件返回指令 要求编制方法注意事项 三 通信指令 XMT 自由口发送指令RCV 自由口接收指令NETR 网络读指令NETW 网络写指令GPA 获取口地址指令 四 高速计数器指令 高速计数器介绍高速计数器指令高速计数器的使用方法应用实例 1 高速计数器介绍 数量及编号中断事件类型工作模式及输入点 1 数量及编号高速计数器在程序中使用时的地址编号用HSCn来表示 HSC表编程元件名称为高速计数器 n为编号 HSCn除了表示高速计数器的编号之外 还代表两方面的含义 高速计数器位和高速计数器当前值 编程时 从所用的指令可以看出是位还是当前值 2 中断事件类型高速计数器的计数和动作可采用中断方式进行控制 与CPU的扫描周期关系不大 高速计数器的中断事件大致分为3类 当前值等于预设值中断 输入方向改变中断和外部复位中断 所有高速计数器都支持当前值等于预设值中断 每个高速计数器的3种中断的优先级由高到低 不同高速计数器之间的优先级又按编号顺序由高到低 具体对应关系如下表所示 3 工作模式及输入点工作模式输入端连接高速计数器的工作模式共有12种 以模式4为例 时序如下图所示 模式4操作时序 选用某个高速计数器在某种工作模式下工作时 高速计数器的输入端不是任意选择的 必须按系统指定的输入点 具体分配如下表所示 2 高速计数器指令 HDEFHSC MODE定义高速计数器指令 允许输入有效时 为指定的高速计数器分配一种工作模式 HSC表示高速计数器编号 取值0 5 MODE表示工作模式 取值0 11 HSCN高速计数器指令 允许输入有效时 根据高速计数器配套的控制字节 并按照HDEF指令指定的工作模式 设置高速计数器并控制其工作 N表示高速计数器编号 为0 5 每个高速计数器都有固定的特殊继电器与之相配合 完成高速计数功能 具体对应关系如下表所示 3 高速计数器的使用方法 状态字节含义 控制字节含义 选择高速计数器及工作模式设置控制字节执行HDEF指令设定当前值和预设值设置中断事件并全局开中断执行HSC指令 使用高速计数器的步骤 4 应用实例 要对一高速事件进行精确控制 通过对脉冲输出信号进行增计数 计数当前值达到24时产生中断 HSC重新从0开始计数 中断次数需要进行累计 计数方向用一个外部信号控制 并能实现外部复位 主程序 初始化子程序和中断程序分别如下图所示 主程序 初始化子程序 中断子程序 五 高速脉冲输出指令 1 高速脉冲输出介绍高速脉冲输出形式高速脉冲输出端子相关特殊继电器脉冲输出指令 PTO输出和PWM输出 高速脉冲的输出端不是任意选择的 必须按系统指定的输出点 Q0 0和Q0 1 同一个输出点只能用于一种功能 如果Q0 0和Q0 1在程序执行中用于高速脉冲输出 则只能在高速脉冲输出中使用 其普通输出点功能被自动禁止 任何输出刷新 输出强制 立即输出指令无效 高速脉冲输出端子 每个高速脉冲发生器对应一定数量特殊继电器 这些继电器包括控制字节 状态字节和参数数值单元 用以控制高速脉冲的输出形式 反映输出状态和参数值 各特殊继电器分配如下表所示 相关的特殊继电器 状态字节 PLSQ0 x脉冲输出指令 检查为脉冲输出 Q0 0或Q0 1 设置的SM 然后启动由SM定义的脉冲操作 PTO高速脉冲串输出和PWM脉冲输出都由PLS指令激活 2 PTO输出 1 周期和脉冲数 2 PTO的种类 3 中断事件类型 4 PTO的使用 1 周期和脉冲数 周期 单位是 s或ms 为16位无符号数据 取值范围是50 65535 s或2 65535ms 通常应设定为偶数 若为奇数 则会引起输出波形占空比的轻微失真 如果编程时设定周期单位小于2 系统默认按2进行设置 脉冲数 用双字长无符号数表示 取值范围是1 232 1之间 如果编程时指定脉冲数为0 则系统默认脉冲数为1个 2 PTO的种类 PTO方式中 如果要输出多个脉冲串 允许脉冲串进行排队 形成管线 当前输出的脉冲串完成之后 立即输出新脉冲串 这保证了脉冲串顺序输出的连续性 单段管线多段管线 包络表由包络段数和各段构成 每段长度为8个字节 包括 脉冲周期值 16位 周期增量值 16位 和脉冲计数值 32位 以包络3段的包络表为例 包络表的结构如下表所示 3 中断事件类型 高速脉冲串输出可以采用中断方式进行控制 各种型号的PLC可用的高速脉冲串输出的中断事件有两个 如下表所示 4 PTO的使用 使用高速脉冲串输出时的步骤 确定脉冲发生器及工作模式设置控制字节写入周期值 周期增量值和脉冲数装入包络的首地址设置中断事件并全局开中断执行PLS指令 应用实例 步进电机转动过程中 要从A点加速到B点后恒速运行 又从C点开始减速到D点 完成这一过程时用指示灯显示 电机的转动受脉冲控制 A点和D点的脉冲频率为2kHz B点和C点的频率为10kHz 加速过程的脉冲数为400个 恒速转动的脉冲数为4000个 减速过程脉冲数为200个 工作过程如下图所示 步进电机工作过程 程序实现本控制系统的主程序 初始化子程序SBR 1 包络表子程序 中断程序分别如下图所示 主程序 初始化子程序SBR 1 包络表子程序SBR 0 中断程序子程序 3 PWM输出 1 周期和脉冲宽度 2 更新方式 3 PWM的使用 1 周期和脉冲宽度 周期 单位是 s或ms 为16位无符号数据 取值范围是50 65535 s或2 65535ms 通常应设定为偶数 若为奇数 则会引起输出波形占空比的轻微失真 如果编程时设定周期单位小于2 系统默认按2进行设置 脉冲宽度 单位可以是 s或ms 为16位无符号数据 变化范围是50 65535 s或2 65535ms 同步更新 不准改变时间基准 脉宽变化发生在两个周期的交界处 可实现平滑过渡 异步更新 可以改变时间基准 脉宽变化不一定发生在两个周期的交界处 更新瞬时关闭PTO PWM发生器 可能引起被控设备的抖动 2 更新方式 3 PWM的使用 使用PWM脉冲输出时的步骤 确定脉冲发生器及工作模式设置控制字节写入周期值 脉冲宽度设置中断事件并全局开中断执行PLS指令 实例 要求设计一段程序 从PLC的Q0 0输出一段脉冲 该段脉冲脉宽的初始值为0 5s 周期固定为5s 其脉宽每周期递增0 5s 当脉宽达到设定的4 5s时 脉宽改为每周期递减0 5s 直到脉宽减为零为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 闽教版英语三年级单词表
- 2025版婚恋产业市场调研与竞争分析服务合同
- 2025年度网络安全技术支持服务合同正范本
- 2025版企业个人间消费借款合同
- 2025编剧合同模板:电视剧剧本创作授权协议
- 2025版商铺租赁合同范本下载与租金调整机制
- 2025保姆专业护理老年人健康管理服务合同
- 2025版燃料油运输企业环保责任合同
- 2025版新型环保商品混凝土代加工与质量检测合作协议
- 2025年度智慧城市建设项目场地承包经营协议
- 活动成都热波zebra音乐节营销策划方案5月1日5月3日
- 四链融合:新质生产力的深度路径
- 八年级历史上学期(2025版)导言课课件
- 2024年(IPA)国际注册对外汉语教师资格认证考试真题卷(含答案)
- 2025-2026学年外研版(三起)(2024)小学英语三年级上册教学计划及进度表
- 2025年中山市三角镇人民政府所属事业单位招聘事业单位人员模拟试卷及1套完整答案详解
- 云南省楚雄彝族自治州佳汇公证处招聘公证员笔试模拟试题参考答案详解
- 女性原发盆腔腹膜后肿瘤诊治中国专家共识(2025年版)解读
- 2025至2030年中国电力巡检无人机行业市场竞争格局及投资前景展望报告
- 食用菌工厂化种植基地建设方案
- 2025年小学生“学宪法讲宪法”网络活动知识竞赛题库(含答案)
评论
0/150
提交评论