西门子PLC指令教程 应用指令

合集下载

第4章西门子PLC编程举例3(数字指令)

第4章西门子PLC编程举例3(数字指令)

四、STEP 7基本数据类型
关键字 BOOL BYTE WORD DWORD CHAR S5TIME 长度 (位) 位 1 8 16 32 8 16 该类型的常数举例 True 或 False (1 或0) B#16#A9 W#16#12AF DW#16#ADAC1EF5 'w' S5T#5s_200ms
CMP ? R 实数比较

如果下列条件成立,则输出 Q4.0 置位: • 在输入 I0.0 和 I0.1 的信号状态为“1” • 并且 MD0 >= MD4 • 并且,输入 I0.2 的信号状态为“1”
三、 转换指令P118
下述转换指令可供使用: • BCD_I BCD 码转换为整数 • I_BCD 整数转换为BCD 码 • BCD_DI BCD 码转换为双整 数 • I_DINT 整数转换为双整数 • DI_BCD 双整数转换为BCD 码 • DI_REAL 双整数转换为浮点 数 • INV_I 整数的二进制反码 • INV_DI 双整数的二进制反码 • NEG_I 整数的二进制补码 • NEG_DI 双整数的二进制补 码 • NEG_R 浮点数求反 • ROUND 舍入为双整数 • TRUNC 舍去小数取整为双 整数 • CEIL 上取整 • FLOOR 下取整
第四章 S7-300指令系统 ——数字指令
要求: 1、了解S7-300编程软件STEP7的基本数据 类型。 2、了解S7-300系列PLC的各种数字指令 3、能编写简单程序。
一、S7-300系列PLC编成语言-STEP7
PLC的编程语言有3种: 1、梯形图(LAD) 方式 2、语句表(STL) 方式 3、功能块图(FBD) 方式 例1 梯形图方式
例1 无条件跳转

西门子S7-200 PLC的指令系统及指令应用

西门子S7-200 PLC的指令系统及指令应用

说明: 根据控制要求,程序在 M0.1 处应该输出 Q0.1,在 M0.2 处也应该输出 Q0.1 如果在 M0.1 及 M0.2 处直接输出 Q0.1,则就范了上面程序双线圈错误, 因此在需要输出 Q0.1 的地方,输出不同的中间继电器,然后把中间继电器的常 开点并联起来,再集中输出一个 Q0.1 的线圈,这样就能避免双线圈的问题。 或者下面的程序也能正确的满足控制要求:
分析: 若 A 先按下按钮, 则 Q0.1 灯要亮, 并且一直亮, 直到主持人按下复位按钮 I0.0, 灯才会灭。其他人按下按钮,对应的灯也不会亮。 若 B 先按下按钮, 则 Q0.2 灯要亮, 并且一直亮, 直到主持人按下复位按钮 I0.0, 灯才会灭。其他人按下按钮,对应的灯也不会亮。 同理,C、D 一样 以下程序是分析后得出的:
地址:苏州吴中宝丰路 1 号
咨询: 400-8169-114
苏州天天自动化 PLC 培训中心

触点指令应用案例 3:
用一个按钮(I0.1)来控制三个输出(Q0.1、Q0.2、Q0.3) 。 当 Q0.1、Q0.2、Q0.3 都为 OFF 时,按第一下 I0.1,则 Q0.1 变为 ON, 按第二下 I0.1,则 Q0.1、Q0.2 变为 ON, 按第三下 I0.1,则 Q0.1、Q0.2、Q0.3 都变 ON 按第四下 I0.1,则 Q0.1、Q0.2、Q0.3 都变为 OFF 状态。 按第五下 I0.1,重复执行如上动作。 试用两种不同的程序设计方法设计其梯形图程序。 以下是分析后得出的程序:
上图梯形图中,”N”此条件只有当 I0.0 由接通→断开的瞬间(也就是上面波形 图中的过程 4 这个状态时)才会接通,其他时刻都不会接通。
应用案例 1:每按一下 I0.1 按钮,变量存储器的数值加 1

西门子指令

西门子指令

第1章位逻辑指令1.1 LD指令:载入常开触点 11.2 A指令:串联常开触点 21.3 O指令:并联常开触点 31.4 LDN指令:载入常闭触点 41.5 AN指令:串联常闭触点 51.6 ON指令:并联常闭触点 61.7 LDI指令:立即载入常开触点71.8 AI指令:串联立即常开触点81.9 OI指令:并联立即常开触点91.10 LDNI指令:载入立即常闭触点101.11 ANI指令:串联立即常闭触点111.12 ONI指令:并联立即常闭触点131.13 NOT指令:改变使能位输入状态141.14 EU指令:上升边缘检测151.15 ED指令:下降边缘检测161.16 ALD指令:触点块串联171.17 OLD指令:触点块并联181.18 LPS、LRD、LPP指令:逻辑堆栈操作191.19 =指令:线圈输出211.20 =|指令:立即线圈输出221.21 S指令:线圈置位231.22 SI指令:线圈立即置位241.23 R指令:线圈复位251.24 RI指令:线圈立即复位261.25 NOP指令:空操作271.26 X指令:异或操作28第2章比较指令2.1 LDB=指令:载入字节等于302.2 AB=指令:与运算字节等于312.3 OB=指令:或运算字节等于322.4 LDB指令:载入字节不等于332.5 AB指令:与运算字节不等于342.6 OB指令:或运算字节不等于352.8 AB=指令:与运算字节大于或等于37 2.9 OB=指令:或运算字节大于或等于39 2.10 LDB=指令:载入字节小于或等于40 2.11 AB=指令:与运算字节小于或等于41 2.12 OOB=指令:或运算字节小于或等于42 2.13 LDB指令:载入字节大于432.14 AB指令:与运算字节大于442.15 OB指令:或运算字节大于452.16 LDB指令:载入字节小于462.17 AB指令:与运算字节小于472.18 OB指令:或运算字节小于482.19 LDW=指令:载入字等于492.20 AW=指令:与运算字等于502.21 OW=指令:或运算字等于522.22 LDW指令:载入字不等于532.23 AW指令:与运算字不等于542.24 OW指令:或运算字不等于552.25 LDW=指令:载入字大于或等于562.26 AW=指令:与运算字大于或等于57 2.27 OW=指令:或运算字大于或等于58 2.28 LDW=指令:载入字小于或等于602.29 AW=指令:与运算字小于或等于61 2.30 OW=指令:或运算字小于或等于62 2.31 LDW指令:载入字大于632.32 AW指令:与运算字大于642.33 OW指令:或运算字大于652.34 LDW指令:载入字小于672.35 AW指令:与运算字小于682.36 OW指令:或运算字小于692.37 LDD=指令:载入双字等于702.38 AD=指令:与运算双字等于712.39 OD=指令:或运算双字等于722.40 LDD指令:载入双字不等于732.41 AD指令:与运算双字不等于742.42 OD指令:或运算双字不等于762.43 LDD=指令:载入双字大于或等于77 2.44 AD=指令:与运算双字大于或等于782.46 LDD=指令:载入双字小于或等于802.47 AD=指令:与运算双字小于或等于812.48 OD=指令:或运算双字小于或等于822.49 LDD指令:载入双字大于832.50 AD指令:与运算双字大于842.51 OD指令:或运算双字大于852.52 LDD指令:载入双字小于872.53 AD指令:与运算双字小于882.54 OD指令:或运算双字小于892.55 LDR=指令:载入实数等于902.56 AR=指令:与运算实数等于912.57 OR=指令:或运算实数等于922.58 LDR指令:载入实数不等于932.59 AR指令:与运算实数不等于942.60 OR指令:或运算实数不等于952.61 LDR=指令:载入实数大于或等于962.62 AR=指令:与运算实数大于或等于972.63 OR=指令:或运算实数大于或等于982.64 LDR=指令:载入实数小于或等于1002.65 AR=指令:与运算实数小于或等于1012.66 OR=指令:或运算实数小于或等于1022.67 LDR指令:载入实数大于1032.68 AR指令:与运算实数大于1042.69 OR指令:或运算实数大于1052.70 LDR指令:载入实数小于1062.71 AR指令:与运算实数小于1072.72 OR指令:或运算实数小于108第3章转换指令3.1 BTI指令:字节转换至整数1103.2 ITB指令:整数转换至字节1113.3 ITD指令:整数转换至长整数1123.4 ITS指令:整数转换至字符串1133.5 DTI指令:长整数转换至整数1153.6 DTR指令:长整数转换至实数1163.7 DTS指令:长整数转换至字符串1173.8 ROUND指令:取整为长整数1193.9 TRUNC指令:截断为长整数1203.10 RTS指令:实数转换至字符串1213.11 BCDI指令:BCD码转换为整数1233.12 IBCD指令:整数转换为BCD码1243.13 ITA指令:整数转换至ASCII码1253.14 DTA指令:长整数转换至ASCII码1273.15 RTA指令:实数转换至ASCII码1293.16 ATH指令:ASCII码转换至十六进制数字1313.17 HTA指令:十六进制数字转换至ASCII码1333.18 STI指令:字符串转换至整数1343.19 STD指令:字符串转换至长整数1363.20 STR指令:字符串转换至实数1373.21 DECO指令:解码1383.22 ENCO指令:编码1403.23 SEG指令:七段显示转换141第4章计数器指令4.1 CTU指令:向上计数1434.2 CTD指令:向下计数1454.3 CTUD指令:双向计数1464.4 HDEF指令:定义高速计数器1484.5 HSC指令:高速计数器150第5章浮点型数学运算指令5.1 +R指令:实数加1535.2 -R指令:实数减1545.3 *R指令:实数乘1565.4 /R指令:实数除1575.5 SQRT指令:求平方根1595.6 SIN指令:求正弦值1605.7 COS指令:求余弦值1615.8 TAN指令:求正切值1625.9 LN指令:求自然对数1635.10 EXP指令:求指数值164第6章整型数学运算指令6.1 +I指令:整数加1656.2 +D指令:长整数加1666.3 ?I指令:整数减1686.4 ?D指令:长整数减1696.5 MUL指令:整数与长整数相乘1716.6 *I指令:整数乘1726.7 *D指令:长整数乘1736.8 DIV指令:整数与长整数相除1756.9 /I指令:除以整数1766.10 /D指令:除以长整数1776.11 INCB指令:递增字节1796.12 INCW指令:递增字1806.13 INCD指令:递增双字1816.14 DECB指令:递减字节1836.15 DECW指令:递减字1846.16 DECD指令:递减双字185第7章中断指令7.1 CRETI指令:从中断(INT)有条件返回1877.2 ENI指令:启用中断1887.3 DISI指令:禁止中断1897.4 ATCH指令:中断连接1907.5 DTCH指令:中断分离1917.6 CEVNT指令:清除中断事件192第8章字逻辑指令8.1 INVB指令:取反字节1948.2 INVW指令:取反字1958.3 INVD指令:取反双字1968.4 ANDB指令:与运算字节1978.5 ANDW指令:与运算字1998.6 ANDD指令:与运算双字2008.7 ORB指令:或运算字节2018.8 ORW指令:或运算字2038.9 ORD指令:或运算双字2048.10 XORB指令:异或运算字节2058.11 XORW指令:异或运算字2078.12 XORD指令:异或运算双字208第9章移动指令9.1 MOVB指令:移动字节2109.2 MOVW指令:移动字2119.3 MOVD指令:移动双字2129.4 MOVR指令:移动实数2139.5 BMB指令:成块移动字节2149.6 BMW指令:成块移动字2159.7 BMD指令:成块移动双字2179.8 SWAP指令:交换字节2189.9 BIR指令:移动字节立即读取2199.10 BIW指令:移动字节立即写入220第10章程序控制指令10.1 FOR指令:循环开始22210.2 NEXT指令:循环结束22410.3 JMP指令:跳接至标签22510.4 LBL指令:语句标签22610.5 LSCR指令:载入顺序控制继电器22610.6 SCRT指令:顺序控制继电器转换22810.7 SCRE指令:顺序控制继电器结束22910.8 CRET指令:从子程序(SBR)有条件返回23110.9 END指令:主程序(OB1)有条件结束23110.10 STOP指令:转换至停止模式23210.11 WDR指令:监视程序复原23210.12 DLED指令:诊断LED 233第11章移位和循环移位指令11.1 SLB指令:向左移位字节23511.2 SLW指令:向左移位字23611.3 SLD指令:向左移位双字23811.4 SRB指令:向右移位字节23911.5 SRW指令:向右移位字24011.6 SRD指令:向右移位双字24211.7 RLB指令:循环左移字节24311.8 RLW指令:循环左移字24411.9 RLD指令:循环左移双字24611.10 RRB指令:循环右移字节24711.11 RRW指令:循环右移字24911.12 RLD指令:循环右移双字25011.13 SHRB指令:寄存器位移252第12章字符串指令12.1 SLEN指令:获取字符串长度25412.2 SCPY指令:将字符串1复制至字符串2 25512.3 SSCPY指令:从字符串复制子字符串25712.4 SCAT指令:字符串连接25812.5 SFND指令:在字符串1中查找字符串2 26012.6 CFND指令:在字符串中查找字符26112.7 LDS=指令:载入字符串等于26312.8 AS=指令:与运算字符串等于26412.9 OS=指令:或运算字符串等于26512.10 LDS指令:载入字符串不等于26612.11 AS指令:与运算字符串不等于26712.12 OS指令:或运算字符串不等于26812.13 ITS指令:整数转换至字符串26912.14 DTS指令:双整数转换至字符串27112.15 RTS指令:实数转换至字符串27212.16 STI指令:字符串转换至整数27412.17 STD指令:字符串转换至长整数27612.18 STR指令:字符串转换至实数278第13章表格指令13.1 FILL指令:内存填充28013.2 ATT指令:增加至表格28113.3 FND?TBL指令:表格查找28313.4 LIFO指令:后入先出28513.5 FIFO指令:先入先出286第14章定时器指令14.1 TON指令:接通延时定时器28814.2 TONR指令:掉电保护性接通延时定时器29014.3 TOF指令:断开延时定时器29114.4 BITIM指令:开始间隔时间29314.5 CITIM指令:计算间隔时间294插图第15章特殊指令15.1 网络读/网络写29615.2 发送/接收29915.3 脉冲输出30215.4 PID指令305。

西门子s7-200PLC基本指令

西门子s7-200PLC基本指令
•当输入能流断开时停止计时,同时定时器位被置0、清除 当前值。 •定时器号(Txx)决定了定时器的分辨率。
15:33
14
15:33
15
2、保持型接通延时定器(TONR)
Txx IN TONR PT
•在输入(IN)收到能流时,从当前值开始计时; •当当前值达到预置值(PT)时,定时器位被置1; •当输入能流断开时停止计时,定时器位、当前值保持不变; •必须用复位指令才能清除定时器位和当前值; •定时器号(Txx)决定了定时器的分辨率。
???
② 置位线圈指令
(S) xxx
???位代表位起始地址
当指令收到能流时,则???指定位开始的XXX个位被置1;
当指令没收到能流时,则???指定的位状态不变 。
???
③ 复位线圈指令 (xRxx) ???位代表位起始地址
当指令收到能流时,则???指定位开始的XXX个位被置0;
当指令没收到能流时,则???指定的位状态不变 。
1. 基本逻辑指令 2. 堆栈操作指令* 3. 定时器指令 4. 计数器指令 5. 比较指令
15ห้องสมุดไป่ตู้33
2
一、基本逻辑指令
1、触点指令
???
① 检查闭指令 其中???位代表位地址 当???指定地址的数据为1时, 指令结果接通能流; 否则,指令结果断开能流。
???
② 检查开指令 其中???位代表位地址 当???指定地址的数据为0时, 指令结果接通能流; 否则,指令结果断开能流。
15:33
21
2、减计数器减计数指令(CTD)
Cxx CD CTD LD PV
从当前计数值开始,在每一个(CD)输入状态 的低到高时递减计数。
•当CXX的当前值等于0时,计数器位CXX置位。

西门子300PLC编程入门

西门子300PLC编程入门

计时器线圈操作 •脉冲计时器( SP ) I1.0 =ON时 •扩展脉冲计时器( SE ) I1.0 =ON时 计时器的数据格式:
•开通延时计时器( SD ) I1.0 =ON时 •保持型开通延时计时器( SS ) I1.0 =ON时 •关断延时计时器( SF ) I1.0 =ON时
程序控制指令 (1)主控继电器功能
二、模式选择开关
三、复位存储器:
通电后从STOP位置扳到MRES位置,“STOP” LED熄灭1s,亮1s,再熄灭1s后保持亮。放开开关,使它回到STOP位置,然后又回到MRES,“STOP” LED以2Hz的频率至少闪动3s,表示正在执行复位,最后“STOP” LED一直亮。
第二章 PLC编程基础
Байду номын сангаас
PS CPU SM SM SM SM SM SM SM
模块
1 2 4 5 6 7 8 9 10
槽号
地址 0.0 地址 0.7 地址 1.0 地址 1.7
3.STEP 7 的可能寻址范围
3. STEP 7 的可能寻址范围 设计的地址区 访问区域 缩写 加在一起的最大区域 过程映象 I/Q 输入 /输出位 I / Q 0.0 --- 65,535.7 输入 /输出字节 I/QB 0 --- 65,535 输入 /输出字 I/QW 0 --- 65,534 输入 /输出双字 I/QD 0 --- 65,532 存储器标志 存储器位 M 0.0 --- 255.7 存储器字节 MB 0 --- 255 存储器字 MW 0 --- 254 存储器双字 MD 0 --- 252 I/Q 外部输入/输出 I/Q 字节, 外设 PIB/PQB 0 --- 65,535 I/Q 字, 外设 PIW/PQW 0 --- 65,534 I/Q 双字, 外设 PID/PQD 0 --- 65,532 定时器 定时器 (T) T 0 --- 255 计数器 计数器 (C) C 0 --- 255

西门子plc指令

西门子plc指令
1.9 OI指令:并联立即常开触点
1.10 LDNI指令:载入立即常闭触点
1.11 ANI指令:串联立即常闭触点
1.12 ONI指令:并联立即常闭触点
1.13 NOT指令:改变使能位输入状态
1.14 EU指令:上升边缘检测
1.15 ED指令:下降边缘检测
1.16 ALD指令:触点块串联
2.40 LDD指令:载入双字不等于
2.41 AD指令:与运算双字不等于
2.42 OD指令:或运算双字不等于
2.43 LDD=指令:载入双字大于或等于
2.44 AD=指令:与运算双字大于或等于
2.45 OD=指令:或运算双字大于或等于
2.46 LDD=指令:载入双字小于或等于
2.23 AW指令:与运算字不等于
2.24 OW指令:或运算字不等于
2.25 LDW=指令:载入字大于或等于
2.26 AW=指令:与运算字大于或等于
2.27 OW=指令:或运算字大于或等于
2.28 LDW=指令:载入字小于或等于
2.29 AW=指令:与运算字小于或等于
2.30 OW=指令:或运算字小于或等于
3.7 DTS指令:长整数转换至字符串
3.8 ROUND指令:取整为长整数
3.9 TRUNC指令:截断为长整数
3.10 RTS指令:实数转换至பைடு நூலகம்符串
3.11 BCDI指令:BCD码转换为整数
3.12 IBCD指令:整数转换为BCD码
3.13 ITA指令:整数转换至ASCII码
11.11 RRW指令:循环右移字
11.12 RLD指令:循环右移双字
11.13 SHRB指令:寄存器位移

西门子PLC编程指令

西门子PLC编程指令

西门子PLC编程指令1、位逻辑指令(1)-||-常开接点(地址)(2)-|/|-常闭接点(地址)(3)XOR位异或(4)-|NOT|-信号流反向(5)-()输出线圈(6)-(#)-中间输出(7)-(R)线圈复位(8)-(S)线圈置位(9)RS复位置位触发器(10)RS置位复位触发器(11)-(N)-RLO下降沿检测(12)-(P)-PLO上升沿检测(13)-(SAVE)将RLO存入BR存储器(14)MEG地址下降沿检测(15)POS地址上升沿检测2、比较指令(1)CMP?I整数比较(2)CMP?D双整数比较(3)CMP?R实数比较3、转换指令(1)BCD_IBCD码转换为整数(2)I_BCD整数转换为BCD码(3)I_DINT整数转换为双整数(4)BCD_DIBCD码转换为双整数(5)DI_BCD双整数转换为BCD码(6)DI_REAL双整数转换为浮点数(7)INV_I整数的二进制反码(8)INV_DI双整数的二进制反码(9)NEG_I整数的二进制补码(10)NEG_DI双整数的二进制补码(11)NEG_R浮点数求反(12)ROUND舍入为双整数(13)TRUNC舍去小数取整为双整数(14)CEIL上取整(15)FLOOR下取整4、计数器指令(1)S_CUD加减计数(2)S_CU加计数器(3)S_CD减计数器(4)-(SC)计数器置初值(5)-(CU)加计数器线圈(6)-(CD)减计数器线圈5、数据块指令(1)-(OPN)打开数据块:DB或DI6、逻辑控制指令(1)-(JMP)无条件跳转(2)-(JMP)条件跳转(3)-(JMPN)若非则跳转(4)LABEL标号7、整数算术运算指令(1)ADD_I整数加法(2)SUB_I整数减法(3)MUL_I整数乘法(4)DIV_I整数除法(5)ADD_DI双整数加法(6)SUB_DI双整数减法(7)MUL_DI双整数乘法(8)DIV_DI双整数除法(9)MOD_DI回送余数的双整数8、浮点算术运算指令(1)基础指令①ADD_R实数加法②SUB_R实数减法③MUL_R实数乘法④DIV_R实数除法⑤ABS浮点数绝对值运算(2)扩展指令①SQR浮点数平方②SQRT浮点数平方根③EXP浮点数指数运算④LN浮点数自然对数运算⑤SIN浮点数正弦运算⑥COS浮点数余弦运算⑦TAN浮点数正切运算⑧ASIN浮点数反正弦运算⑨ACOS浮点数反余弦运算⑩ATAN浮点数反正切运算9、赋值指令(1)MOVE赋值10、程序控制指令(1)-(Call)从线圈调用FC/SFC(无参数) (2)CALL_FB从方块调用FB(3)CALL_FC从方块调用FC(4)CALL_SFB从方块调用SFB(5)CALL_SFC从方块调用SFC(6)-(MCR<)主控继电器接通(7)-(MCR>)主控继电器断开(8)-(MCRA)主控继电器启动(9)-(MCRD)主控继电器停止(10)-(RET)返回11、移位和循环指令(1)移位指令①SHR_I整数右移②SHR_DI双整数右移③SHL_W字左移④SHR_W字右移⑤SHL_DW双字左移⑥SHR_DW双字右移(2)循环指令①ROL_DW双字左循环②ROR_DW双字右循环12、状态位指令(1)OV-||-溢出异常位(2)OS-||-存储溢出异常位(3)UO-||-无序异常位(4)BR-||-异常位二进制结果(5)==0-||-结果位等于"0"(6)<>0-||-结果位不等于"0" (7)>0-||-结果位大于"0"(8)<0-||-结果位小于"0"(9)>=0-||-结果位大于等于"0" (10)<=0-||-结果位小于等于"0"13、定时器指令(1)S_PULSE脉冲S5定时器(2)S_PEXT扩展脉冲S5定时器(3)S_ODT接通延时S5定时器(4)S_ODTS保持型接通延时S5定时器(5)S_OFFDT断电延时S5定时器(6)-(SP)脉冲定时器线圈(7)-(SE)扩展脉冲定时器线圈(8)-(SD)接通延时定时器线圈(9)-(SS)保持型接通延时定时器线圈(10)-(SF)断开延时定时器线圈14、字逻辑指令(1)WAND_W字和字相"与"(2)WOR_W字和字相"或"(3)WAND_DW双字和双字相"与" (4)WOR_DW双字和双字相"或" (5)WXOR_W字和字相"异或" (6)WXOR_DW双字和双字相"异或“。

西门子S7-200 PLC指令简介及实例分析

西门子S7-200 PLC指令简介及实例分析

数据处理、运算指令及应用本章要点✍ 数据传送、字节交换、字节立即读写、移位、转换指令的介绍、应用及实训 ✍ 算术运算、逻辑运算、递增/递减指令的介绍、应用及实训✍ 表的定义、填表指令、表取数指令、填充指令、表查找指令的介绍5.1 数据处理指令5.1.1 数据传送指令1. 字节、字、双字、实数单个数据传送指令MOV数据传送指令MOV ,用来传送单个的字节、字、双字、实数。

指令格式及功能如表5-1所示。

表5-1单个数据传送指令MOV 指令格式使EN O = 0即使能输出断开的错误条件是:SM4.3(运行时间),0006(间接寻址错误)。

【例5-1】将变量存储器VW10中内容送到VW100中。

程序如图5-1所示。

LD I0.1MOVW VW10, VW100图5-1例5-1题图2. 字节、字、双字、实数数据块传送指令BLKMOV数据块传送指令将从输入地址IN 开始的N 个数据传送到输出地址OUT 开始的N 个单元中,N 的范围为1至255,N 的数据类型为:字节。

指令格式及功能如表5-2所示。

表5-2 数据传送指令BLKMOV 指令格式使ENO= 0的错误条件:0006(间接寻址错误)0091(操作数超出范围)。

【例5-2】程序举例:将变量存储器VB20开始的4个字节(VB20- VB23)中的数据,移至VB100开始的4个字节中(VB100-VB103)。

程序如图5-2所示。

LAD STLLD I0.0BMB VB20 ,VB100, 4图5-2 例5-2图程序执行后,将VB20~VB23中的数据30、31、32、33送到VB100~VB103。

执行结果如下:数组1数据 30 31 32 33数据地址 VB20 VB21 VB22 VB23块移动执行后:数组2数据 30 31 32 33数据地址 VB100 VB101 VB102 VB1035.1.2 字节交换、字节立即读写指令1. 字节交换指令字节交换指令用来交换输入字IN 的最高位字节和最低位字节。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//禁 止
•图5.10 中断调用程序
•第5章 应用指令
3. 中断程序 (1)构成 中断程序必须由三部分构成:中断程序标号、 中断程序指令和无条件返回指令。 (2)要求 (3)编制方法 (4)注意事项
返回本节
•第5章 应用指令
5.2.3 通信
通信指令包括: XMT,自由口发送指令 RCV,自由口接收指令 NETR,网络读指令 NETW,网络写指令 GPA,获取口地址指令
2. 写实时时钟 TODW,写实时时钟指令。用来设定实时时钟。 当使能输入有效时,系统将包含当前时间和日 期,一个8字节的缓冲区将装入时钟。
•第5章 应用指令
时钟缓冲区的格式如表5.2所示。
•表5.2 时钟缓冲区
•第5章 应用指令
程序实例 控制要求: 编写一段程序,可实现读、写实时时钟,并以BCD码显示分钟。时 钟缓冲区从VB100开始。 程序中的子程序SBR_0为写时钟子程序,将当前时间写入从VB100 开始的8字节时间缓冲区,时间设置如下表5.3所示。程序实现:读 写时钟程序如图5.9所示。
//使能输入 //调用子程序 //SBR_1
•图5.4 子程序调用举例
•第5章 应用指令
3. 带参数的子程序调用
(1)子程序参数 ➢变量名 ➢变量类型 ➢数据类型 (2)参数子程序调用的规则 (3)变量表使用 (4)程序实例
•第5章 应用指令
以上面指令为例,局部变量表分配如表5.1所示, 程序段如图5.5所示。
LD CALL
I0.0 SBR_0
//使 能 输 入 //调 用 子 程 序 0 //本 梯 级 为 二 级 //循 环 体 的 功 能 段
NEXT
//循 环 结 束 指 令
LD IN C W
SM 0.0 VW 100
//使 能 输 入 //字 增 指 令 //每 执 行 一 次 一 级 //循 环 体 , V W 100 //的 值 增 1
NEXT
//循 环 结 束 指 令
•图5.6 程序循环(2)
返回本节
•第5章 应用指令
5.1.7 顺序控制继电器
1. 顺序继电器指令 (1)定义顺序段(2)段开始 (3)段结束 (4)段转移 2. 注意事项 3. 顺序结构 4. 程序实例
•第5章 应用指令
本例是用顺序 继电器实现的 顺序控制中的 一个步的程序 段,这一步实 现的功能是使 两个电机M1和 M2起动运行20 秒后停止,切 换到下一步。
•第5章 应用指令
LD EU CALL
LD TODR
MOVB
I0.4
//装入触点
//上跳沿触发
SBR_0 //调用子程序
//子程序 SBR_0
//作用为写时钟
SM0.0 //运行有效
VB100 // 从 VB100
//读时钟值
//
//
VB104, QB0 //传送指令

//将分钟值 //从 QB0 输出
指令格式:AENO(无操作数)
•第5章 应用指令
•AENO指令只能在语句表中使用,将栈顶值和 ENO位的逻辑与运算,运算结果保存到栈顶。程 序如图5.8所示。
LD +I AENO ATCH
I0.0 VW200, VW204
INT_0, 10
//使能输入 //整数加法指令,VW200+VW204=VW204 //与ENO指令,判断整数加法指令执行是否出错 //如果加法指令执行正确,则调用中断程序INT_0 //中断事件号为10
INT_1, 2
//中 断 调 用 //中 断 程 序 //为 IN T_1 //事 件 号 为 2 //全 局 开 中 断 //
LD DTCH
SM 5.0 2
//检 查 I/O 错 //若 I/O 有 错 //断 开 本 中 //断 连 接
LD
I0.5
D IS I
//外 部 条 件 //全 局 中 断
返回本章首页
•第5章 应用指令
5.1.1 空操作
NOP,空操作指令。使能输入有效时,执行空操作指 令。空操作指令不影响用户程序的执行,操作数N是标 号,是一个0~255的常数。 指令格式: NOP N 例: NOP 30 程序如下图5.1所示。
L D I0 .0 N O P 3 0
//使 能 输 入 //空 操 作 指 令 //标 号 为 3 0
指令格式:STOP
(无操作数)
返回本节
•第5章 应用指令
5.1.3 看门狗
WDR,看门狗复位指令。当使能输入有效时, 执行WDR指令,每执行一次,看门狗定时器就 被复位一次。用本指令可用以延长扫描周期, 从而可以有效避免看门狗超时错误。
指令格式:WDR
(无操作数)
程序实例:指令STOP、END、WDR的应用如 图5.2所示。
入MEND指令,而是由软件自动加在主程序结
尾。指令格式:END
(无操作数)
•第5章 应用指令
2. 暂停指令
STOP,暂停指令。使能输入有效时,该 指令使主机CPU的工作方式由RUN切换 到STOP方式,从而立即终止用户程序的 执行。
STOP指令在梯形图中以线圈形式编程。 指令不含操作数。指令的执行不考虑对特 殊标志寄存器位和能流的影响。
返回本节
•第5章 应用指令
5.1.2 结束及暂停
1. 结束指令
结束指令有两条:END和MEND。两条指令在 梯形图中以线圈形式编程。
END,条件结束指令。使能输入有效时,终 止用户主程序。
MEND无条件结束指令。无条件终止用户程序 的执行,返回主程序的第一条指令。
用Micro/Win32编程时,编程人员不需手工输
10
//标 志 程 序 段
LD
I0.3
//
S
Q 1.0 , 3 //把 从 Q 1.0 开 始 的
//3 个 输 出 点 置 1
• 5.3
图 程 序 跳 转 实 例
•第5章 应用指令
5.1.5 子程序指令
1. 建立子程序 2. 2. 子程序调用 3. 带参数的子程序调用
•第5章 应用指令
1. 建立子程序
•图5.9 读写时钟
返回本节
•第5章 应用指令
5.2.2 中断
1. 中断源 (1)中断源及种类 中断源,即中断事件发出中断请求的来源。S7200可编程序控制器具有最多可达34个中断源, 每个中断源都分配一个编号用以识别,称为中 断事件号。这些中断源大致分为三大类:通信 中断、输入输出中断和时基中断。
LD WDR
A
M 0.4
I0.2
//用 触 点 重 新 触 发 //看 门 狗 定 时 器
//
•图5.2 停止、结束、看门狗指令
返回本节
•第5章 应用指令
5.1.4 跳转
1. 跳转指令 与跳转相关的指令有下面两条: (1)跳转指令 JMP,跳转指令。使能输入有效时,使程序流程跳到 同一程序中的指定标号n处执行。执行跳转指令时,逻 辑堆栈的栈顶值总是1。 (2)标号指令 LBL,标号指令。标记程序段,作为跳转指令执行时跳 转到的目的位置。操作数n为0~255的字型数据。
•第5章 应用指令
2. 子程序调用
(1)子程序调用和返回指令 ➢ 子程序调用 ➢子程序条件返回
(2)注意事项 (3)应用实例
•第5章 应用指令
图5.4所示的程序实现用外部控制条件分别调用 两个子程序。
LD
I0.0
CALL S2
//使能输入 //调用子程序S2 //
LD CALL
I0.0 SBR_1
•第5章 应用指令
5.2.4 高速计数
1. 高速计数器介绍 2. 高速计数指令 3. 高速计数器的使用方法 4. 应用实例
•第5章 应用指令
程序实例: 如右图5.3所示。用增减计数器进行计数, 如果当前值小于500,则程序按原顺序执 行,若当前值超过500,则跳转到从标号 10开始的程序执行。
返回本节
•第5章 应用指令
LD LD LD CTUD
I0.0
//增 计 数 输 入 端
I0.1
//减 计 数 输 入 端
I0.2
•图5.8 与ENO指令
返回本节
•第5章 应用指令
5.2 特殊指令
5.2.1 时钟指令 5.2.2 中断 5.2.3 通信 5.2.4 高速计数 5.2.5 高速脉冲输出 5.2.6 PID回路指令
返回本章首页
•第5章 应用指令
5.2.1 时钟指令
1. 读实时时钟 TODR,读实时时钟指令。当使能输入有效时, 系统读当前时间和日期,并把它装入一个8字节 的缓冲区。
•第5章 应用指令
LD O O STOP
SM 5.0 SM 4.3 I0.3
LD
I0.5
END
//检 查 I/O 错 误 //运 行 时 刻 检 查 编 程 //外 部 切 换 开 关 //条 件 满 足 , 由 RUN // 切 换 到 STOP 方 式 // // //外 部 停 止 控 制 //停 止 程 序 执 行 // //
•第5章 应用指令
(2)中断优先级 中断优先级由高到低依次是:通信中断、输入 输出中断、时基中断。每种中断中的不同中断 事件又有不同的优先权。 主机中的所有中断事件及优先级如表5.4所示。
•第5章 应用指令
•表5.4 中断事件及优先级
•第5章 应用指令
•第5章 应用指令
2. 中断调用 即调用中断程序,使系统对特殊的内部或外部 事件作出响应。系统响应中断时自动保存逻辑 堆栈、累加器和某些特殊标志存储器位,即保 护现场。中断处理完成时,又自动恢复这些单 元原来的状态,即恢复现场。
•第5章 应用指令
相关文档
最新文档