第4章 S7-200的功能指令 4.1 功能指令概述 4.2 数据处理指令 4.3 数学运算指令 4.4 程序控制指令

Slides:



Advertisements
Similar presentations
牛熊證簡介.
Advertisements

南山中學 102學年度 性別平等教育週性別教育 性騷擾防治.
第7小组研究资料 汇报 组长:宋雨萱 组员:闫铭浩 张子璇 陈奕鑫.
PLC基础及应用 郝 坤 淮南职业技术学院 煤矿机电系.
大肠杆菌生长曲线的测定 水、环境中微生物的测定
1.6 中国人口迁移.
第2章 PLC的结构及编程软件的使用 学习内容 S7-200系列PLC的外部结构 S7-200系列PLC的性能 PLC的编程语言与程序结构
透過教學鷹架引導 三年級學生形成科學議題 高雄市復興國小 李素貞 102年3月20日
危害辨識、分析講解及實作演練.
高考复习专题 高考命题与地理计算: 地理计算
第三章 处理机调度与死锁 3.1 处理机调度的基本概念 3.2 调度算法 3.3 实时调度 3.4 多处理机系统中的调度
抓“中”等 重“实”效 促提“升” 石家庄市第42中学 李荣
第3章 S7-200可编程序控制器 3.1 S系列PLC发展概述 3.2 S7-200 PLC系统组成 3.3 编程元件及程序知识
平湖市当湖高级中学 平湖市教育局教研室 (电话)
造气DCS综合优化控制系统 介绍 石家庄兴盛德隆科技有限公司.
刑法分论5-2 周铭川.
线索一 线索二 复习线索 专题五 线索三 模块二 第二部分 考点一 高考考点 考点二 考点三 配套课时检测.
孝敬父母长辈.
PLC程序设计及调试 1. 编程工具Programming Tool PLC PLC接口信号与输入输出信号
PLC控制系统设计与运行 模块二:灯光的PLC控制 主讲教师:吴会琴.
第8章 继电接触控制系统.
可编程序控制器应用 王如松.
FC OB1 FB SFC 操作系统 SFB OBs 结构化编程 其它
S and STEP 7 Basic V10.5 第8章: 功能型对象.
S7-300PLC的硬件 自动化教研室.
冷凍空調自動控制 - 控制系統範例 李達生.
结构化编程 FC OB1 FB SFC 操作系统 SFB OBs 其它
电气控制及PLC技术 电气工程学院 自动化系 杨霞 2018年1月.
第8章 通信及网络 8.1 通信及网络概述 8.2 通信实现 8.3 网络通信 8.4 自由口通信.
S7-300/400PLC的编程技术 河北机电自动化教研室.
授课人:张宏 单位:江苏省丹阳中等专业学校
PLC与数控机床电器控制 主讲人:何梦佳 中山职业技术学院 机电工程学院.
奥林巴斯显微镜的维护保养.
电气控制及PLC技术 电气工程学院 自动化系 杨霞 2018年1月.
6 S7-200可编程控制器 指令集 2019/1/2 PLC指令集.
1 試求下列各值: cos 137°cos (-583°) + sin 137°sin (-583°)。
3 S7-200可编程控制器 使用入门 2019/2/17.
永宏PLC --FB-PLC【基礎功能篇 】
7.1.1 设备管理的功能(P95) 分配设备:按设备的不同类型和操作系统选用的算法分配。包括分配相应的通道、设备控制器以及对未分配到的任务或怍业进行排队等; 控制和实现真正的输入输出操作。包括通道程序控制、启动设备、及时响应及处理中断讯号等; 对输入输出缓冲区进行管理。例如逻辑名的管理,多个缓冲区的分时以及串并行操作,同类多个外部设备的均衡工作,避免“忙的忙”和“闲的闲”;
1 在平面上畫出角度分別是-45°,210°,675°的角。 (1) (2) (3)
第6章 S7-200系列PLC 通信及网络 本章主要介绍SIMATIC指令集中的常用指令及其使用方法,并以梯形图和语句表两种编程语言为例,讲授指令的结构形式、功能和相关知识。
第三章 PLC基础 掌握PLC工作原理、结构特点。 熟悉基本逻辑指令、顺序控制指令及常用的功能指令。 具备PLC应用系统设计初步能力。
章 末 整 合 内容:一切物体总保持匀速直线运动状态或静止状态, 直到外力近使它改变这种状态为止
数据块中的数据存储 目录 页 目标 …… 数据存储区 … ……… 数据块 (DB) … STEP 7数据类型概述 STEP 7基本数据类型
4 S7-200可编程控制器 基本概念 2019/4/13.
第一章.
5-6 串列埠模式0輸出埠擴充實習.
1-2 廣義角與極坐標 廣義角 1 廣義角的三角函數 2 廣義角三角函數的性質 3 極坐標 廣義角與極坐標 page.1/19.
第1章 数字电路基础 本章的重点、难点、了解 1.1 数制与转换 1.2 常用代码 1.3数字电路概述 1.4逻辑运算与常用逻辑门电路
第3章 PLC的结构特点及技术性能 3.1 可编程控制器的结构特点 3.2 FX2N系列PLC的主要技术性能.
1.3 运动快慢的描述----速度 育 才 中 学.
物质的简单运动复习.
K60入门课程 06 首都师范大学物理系 靳熙芃.
Ch1 三角 1-2 廣義角與極坐標.
例題:某人由地面同時向空中拋出 A、B 兩球,A 球之初速為 vA,仰角為 θA,B 球則為 vB 及 θB,且 θA > θB。設兩球在同一水平面內運動,而且所達到的最大高度也相同,則下列敘述何者為正確? (A) vA > vB (B) A 球之水平射程較 B 遠 (C) 兩球同時到達最高點.
FP0/VF0 for Filling Machines
第六节 无穷小的比较.
PLC在数控机床上的经典应用 主讲人:何梦佳 中山职业技术学院 机电工程系.
第二章 匀变速直线运动的研究 §2.1实验:探究小车速度随时间变化的规律.
 第四章 消费税法律制度 经济法基础 模板来自于
第七章 编程实例 例1、设计一个报警器,要求当条件X1=ON满足时蜂鸣器鸣叫,同时报警灯连续闪烁16次,每次亮2s,熄灭3s,然后,停止声光报警。 分析:输入信号占用一个输入点,蜂鸣器和报警灯各占用一个输出点,报警灯亮、暗闪烁,可以采用两个定时器分别控制,而闪烁次数由计数器控制。 I/O分配如下:
F1-20P PLC简易编程器的使用.
第5章 S7-200 PLC编程软件及应用 5.1 编程软件系统概述 5.2 STEP 7-Micro/WIN 32软件功能
初二物理 1.4测量平均速度.
第二章 PLC的编程语言.
项目二 可编程控制器的 构成及工作原理 2019/8/6.
國立勤益科技大學 冷凍空調與能源系 實務專題成果展
E3X-DA-11N光纖處理器簡易調整方法 一.各部位名稱與功能: 動作出力指示燈 感度調整設定與機能變更設定按扭 入光量檢出表示
三角 三角 三角 函数 已知三角函数值求角.
新人教A版 数学必修4 第三章 三角恒等变换 两角差的余弦公式.
Presentation transcript:

第4章 S7-200的功能指令 4.1 功能指令概述 4.2 数据处理指令 4.3 数学运算指令 4.4 程序控制指令 4.5 局部变量表与子程序 4.6 中断程序与中断指令 4.7 高速计数器与高速脉冲输出指令 4.8 数据块应用与字符串指令 2019/7/6

4.1 功能指令概述 4.1.1 怎样学习功能指令 初学功能指令时,首先可以按指令的分类浏览所有的指令。初学者没有必要花大量的时间去熟悉功能指令使用中的细节,应重点了解指令的基本功能和有关的基本概念。应通过读程序、编程序和调试程序来学习功能指令。 2019/7/6

4.1.2 S7-200的指令规约 1.使能输入与使能输出 在梯形图中,有两种基本类型的输入输出,一种是能量流,另一种是数据。 在梯形图中,除了线圈和触点以外,还有一类功能性指令——“功能块”。功能块在梯形图中用方框表示。 EN为功能块的能流输入端,为布尔类型。有能流流入,则执行该指令。 ENO为功能块的能流输出端,为布尔类型。如果ENO为1,而且正确执行了本指令,则ENO能把能流传到下一个单元,否则,指令运行错误,能流在此终止。 2019/7/6

输出和功能指令一般必须通过触点电路连接到左侧母线上。这些指令被称为条件输入指令。若要无条件地执行这些指令可利用SM0.0触点。 2. 梯形图中的指令 触点指令可以直接和左母线相连。 输出和功能指令一般必须通过触点电路连接到左侧母线上。这些指令被称为条件输入指令。若要无条件地执行这些指令可利用SM0.0触点。 与能流无关的指令必须直接连接在左侧母线上。如LBL、SCR指令。 2019/7/6

3.能流指示器 梯形图提供两种能流指示器,它们由编辑器自动添加和移除。 必须解决开路问题,网络才能成功编译。ENO端的可选能流指示器表示可将其他梯形图元件附加到该位置。它不影响编译。 可选能流指示器 开路能流指示器 2019/7/6

4.2 数据处理指令 4.2.1 比较指令 可以进行两个字节(B)、整数(I)、双整数(D)、实数(R)和字符串(S)的比较。 可以进行==、<>、>=、<=、>、<六种比较操作。 梯形图符号如下 常量字符串应放在触点上方 2019/7/6

指令分别以LD、A、O开头,依次表示加载一比较触点,与一比较触点,或一比较触点。 语句表 指令分别以LD、A、O开头,依次表示加载一比较触点,与一比较触点,或一比较触点。 字节比较 整数比较 双字整数比较 实数比较 字符串比较 LDB= IN1,IN2 AB= IN1,IN2 OB= IN1,IN2 LDB<> IN1,IN2 AB<> IN1,IN2 OB<> IN1,IN2 …… LDW= IN1,IN2 AW= IN1,IN2 OW= IN1,IN2 LDW<>IN1,IN2 AW<> IN1,IN2 OW<> IN1,IN2 LDD= IN1,IN2 AD= IN1,IN2 OD= IN1,IN2 LDD<> IN1,IN2 AD<> IN1,IN2 OD<> IN1,IN2 LDR= IN1,IN2 AR= IN1,IN2 OR= IN1,IN2 LDR<> N1,IN2 AR<> IN1,IN2 OR<> IN1,IN2 LDS= IN1,IN2 AS= IN1,IN2 OS= IN1,IN2 LDS<> N1,IN2 AS<> IN1,IN2 OS<> IN1,IN2 注意二:在英文输入法下输入。 注意一:字母与比较符号间无空格。 2019/7/6

注意:中间变量M0.2的作用!比较触点的作用! 【例4-1】 用接通延时定时器和比较指令组成占空比可调的脉冲发生器。 注意:中间变量M0.2的作用!比较触点的作用! 2019/7/6

3.字节、字、双字和实数的传送指令 1~255 传送过程不改变源存储单元的数据值! 2019/7/6

6.4.2 数据传送指令——语句表 MOVB IN, OUT MOVW IN, OUT MOVD IN, OUT MOVR IN, OUT BMB IN, OUT, N BMW IN, OUT, N BMD IN, OUT,N SWAP IN BIR IN, OUT BIW IN, OUT 2019/7/6

4.2.2 移位与循环移位指令 左移 右移 循环左移 循环右移 移位寄存器 2019/7/6

移位指令/循环移位指令的共同点: 不同点 符号位一同移位; 每次移出位的值被复制到SM1.1; 移位结果为0,则SM1.0被置位。 移位指令 移位指令是单向的,一端移出值将被丢弃,另一端空出位补0; N大于允许值时,实际移位的位数为最大允许值; 循环移位指令 循环移位是环形的,一端移出值将被送至另一端空出位; N的有效值为0~7/15/31; 2019/7/6

脉冲执行方式。否则每个扫描周期均执行移位操作。 2019/7/6

移位寄存器指令 将DATA位值移入移位寄存器。 S_BIT指定移位寄存器的最低位。 上升沿有效 SHRB DATA, S_BIT,N 布尔量(位地址) 字节量 (-64~+64) 将DATA位值移入移位寄存器。 S_BIT指定移位寄存器的最低位。 N指定移位寄存器的长度和移位方向(正:左移;负:右移)。并不表示移位次数。 SHRB指令移出的位被放置在溢出位SM1.1中。 使用该指令时,一般用脉冲驱动,一个扫描周期移动一位。 2019/7/6

移位寄存器例题 1.移位寄存器共14位,由V30.0 ~V31.5组成。 2.I0.4从最低位V30.0移入,每位依次左移一位,最高位V31.5移出。 3.若N=-14,则I0.4从V31.5移入,每位依次右移一位,最低位V30.0移出。 2019/7/6

4.2.3 数据转换指令 Round:四舍五入 Trunc:截尾取整。R→DI。 短变长符号扩展; 长变短注意范围。 B: Byte I:Int DI:Double Int R:Real S:String BCD:BCD码 A: ASCII码 H:Hex DI:Double Int DECO:Decoder ENCO:Encode SEG:七段码 2019/7/6 Round:四舍五入 Trunc:截尾取整。R→DI。

实质:将二进制数变为BCD码表示的十进制数。 实质:将BCD码表示的十进制数变为二进制数(用16进制表示)。 只译码输入字节的低4位。 QB0:gfedcba 2019/7/6

(单位换算:1 inch = 2.54 CM ,要求转换不保留小数) 3.计算程序中的数据转换 例题 将101 in转换为cm。 (单位换算:1 inch = 2.54 CM ,要求转换不保留小数) 2019/7/6

4.译码指令DECO 5.编码指令ENCO 根据输入字节的低4位表示的位号,将输出字中相应的位置1,其他位为0. 4-16线译码器 16-4线优先编码器 4.译码指令DECO 根据输入字节的低4位表示的位号,将输出字中相应的位置1,其他位为0. 5.编码指令ENCO 将输入字IN中最低有效位(值为1)的位号写入输出字节的低4位。(低位优先级高) 2019/7/6

4.2.4 表格指令 表的存储格式 (以字为存储单位) 表格最多可包含100个条目:0-99 2019/7/6

FILL_N指令 整数 整数 字节 将整数IN连续写入从地址OUT开始的N个字单元, N的范围是1至255。 图 填充指令 2019/7/6

4.2.5 读写实时时钟指令 用菜单命令“PLC”→“实时时钟”可以读取PC、PLC的时钟,修改和下载日期、时间。 1.用编程软件读取与设置实时时钟的日期和时间 用菜单命令“PLC”→“实时时钟”可以读取PC、PLC的时钟,修改和下载日期、时间。 2.读取实时时钟指令READ_RTC 从CPU的实时时钟读取当前日期和时间,并把它们装入以T为起始地址的8字节缓冲区,依次存放年、月、日、时、分、秒、0和星期。 星期日为1, 1为星期日,2~7为星期1~6。 日期和时间的数据类型为字节型BCD码,以16进制格式显示。 2019/7/6

3.设置实时时钟指令SET_RTC 将8字节时间日期值写入CPU的实时时钟。 13年05月15日18点 15分43秒星期3 2019/7/6

补充例题 编写程序控制灯的定时接通和断开。要求18:00时开灯,06:00时关灯。时钟缓冲区从VB0开始。 2019/7/6

4.3 数学运算指令 6.5.1 数学运算指令 语句表 +I/D/R IN1, OUT -I/D/R IN1, OUT 4.3 数学运算指令 语句表 +I/D/R IN1, OUT -I/D/R IN1, OUT *I/D/R IN1, OUT /I/D/R IN1, OUT MUL IN1,OUT DIV IN1, OUT INCB/W/D IN DECB/W/D IN SQRT IN, OUT …… EXP IN, OUT 6.5.1 数学运算指令 2019/7/6

1.加减指令 语句表 +I/D/R IN1, OUT -I/D/R IN1, OUT IN/OUT:整数 IN/OUT:双整数 功能: IN1±IN2=OUT 影响特殊存储位: SM1.0(零)、SM1.1(溢出)、SM1.2(负) 2019/7/6

2. 乘除指令(1) 语句表 *I/D/R IN1, OUT /I/D/R IN1, OUT IN/OUT:整数 IN/OUT:双整数 影响特殊存储位: SM1.0(零)、SM1.1(溢出) SM1.2(负)、SM1.3(除数为0) 功能: IN1*/IN2=OUT 2019/7/6

2. 乘除指令(2) 语句表 MUL IN1,OUT DIV IN1, OUT OUT*/IN1=OUT IN:整数 OUT:双整数 功能: IN1*/IN2=OUT 除法结果:一个16位余数(高位)和一个16位商(低位) 影响特殊存储位: SM1.0(零)、SM1.1(溢出) SM1.2(负)、SM1.3(除数为0) 2019/7/6

【例4-3】 在输入信号I0.4的上升沿,用模拟电位器0来设置定时器T37的设定值(5~20s),即从SMB28读出的数字0~255对应于5~20s。设读出的数字为N,100ms定时器的设定值为 (200–50)×N / 255+50 =150×N / 255+50 (0.1s) 试设计求设定值的运算程序。 2019/7/6

CPU提供4个32累加器AC0~AC3。它们可按字节、字、双字进行存取,从低位开始,存取的数据长度由所用指定决定,故累加器你常用于存放操作数及中间运算结果。 2019/7/6

3.递增递减指令/加1减1指令 语句表 INCB/W/D OUT DECB/W/D OUT IN/OUT:字节 IN/OUT:整数 功能: IN±1=OUT 影响特殊存储位: SM1.0(零)、SM1.1(溢出)、SM1.2(负) 2019/7/6

4.3.2 浮点数函数运算指令 三角函数指令(SIN、COS、TAN) IN:实数(弧度);OUT:实数(函数值)。 影响特殊存储位: 4.3.2 浮点数函数运算指令 三角函数指令(SIN、COS、TAN) IN:实数(弧度);OUT:实数(函数值)。 影响特殊存储位: SM1.0(零)、SM1.1(溢出)、SM1.2(负) 语句表 SIN IN, OUT COS IN, OUT TAN IN, OUT 2019/7/6

补充例题 求45°的正弦值。 2019/7/6

4.3.3 逻辑运算指令 语句表 INVB OUT ANDB IN1, OUT ORB IN1, OUT XORB IN1, OUT 影响特殊存储位: SM1.0(零) 按位进行逻辑运算! 2019/7/6

【例4-5】求VW10中的整数的绝对值,结果存放在VW10中。 2019/7/6

逻辑运算指令应用举例 1. 将QB0的第2~4位置为1,其余各位保持不变。 2.IW2的低12位用来读取3位拨码开关的BCD码,IW2的高4位另作他用。 试将IW2的低12位读至VW2。 3.利用异或运算比较两个扫描周期IB0中是否有变化。 2019/7/6

4.4 程序控制指令 用于控制用户程序的执行。 扫描周期超过该时间则CPU进入STOP 2019/7/6

JMP指令举例 该网络被跳过不执行,故I0.3不影响Q0.0的值。 2019/7/6

2.跳转指令对定时器的影响 在各定时器正在定时时跳转,100ms定时器停止定时,当前值保持不变。10ms和1ms定时器继续定时,定时时间到时跳转区外的触点也会动作。停止跳转时100ms定时器继续定时。 功能指令不执行。 T=1s 图4-27 跳转与定时器 2019/7/6

例4-6 用跳转指令实现4-28中的流程图。 2019/7/6

整数 字节 2019/7/6

1.单重循环 【例4-7】在I0.5的上升沿,求VB10 ~ VB13这4个字节的异或值,用VB14保存。 2019/7/6

2.多重循环 循环最多可以嵌套8层。 在I0.1的上升沿,执行10次外层循环,如果I0.2为ON,每执行一次外层循环,将执行8次内层循环。执行完后,VW6的值增加80。 2019/7/6

4.5 局部变量表与子程序 4.5.1 局部变量表 全局变量(除L区以外的量) 在主程序、子程序和中断程序中均有效的变量 在符号表中定义 4.5 局部变量表与子程序 4.5.1 局部变量表 全局变量(除L区以外的量) 在主程序、子程序和中断程序中均有效的变量 在符号表中定义 符号表 重叠列 未使用列 错误 2019/7/6

局部变量(L区变量) 仅在定义它的POU中有效的变量 每个POU界面上部均是定义局部变量的地方 2019/7/6

局部变量优点及用途 局部变量的类型——按数据的传递方向划分 当全局变量和局部变量重名时,局部变量优先级高 只使用局部变量的子程序便于移植。 同一临时变量存储区可在不同程序中重复使用。 在子程序调用时用局部变量进行参数传递。 局部变量的类型——按数据的传递方向划分 主程序 中断程序 子程序 TEMP IN OUT IN_OUT TEMP 2019/7/6

局部变量的地址分配 局部变量定义在L区。 定义局部变量时无需指定存储地址,程序编辑器自动地给变量分配地址,起始地址为LB0。 按变量类型的顺序定义变量。使用快捷菜单进行插入或删除某一类型的行。 地址栏 子程序中的变量表 主程序/中断程序中的变量表 2019/7/6

4.5.2 子程序的编写与调用 Step7程序编辑器窗口为每个POU提供一个独立页,主程序总是第一页,子程序和中断程序依次排在后面。 编程器会自动在子程序和中断程序结束的地方添加无条件返回指令。 1.子程序的作用 可缩短程序长度、减少扫描时间 子程序可使程序结构简单清晰,易于调试、查错和维护 方便移植 2019/7/6

2.子程序的创建 2019/7/6

2019/7/6 3. 子程序举例 局部变量表与模拟量计算子程序

4.子程序的调用 调用子程序——梯形图 调用子程序——语句表 LD I0.4 CALL 模拟量计算, AIW2, VW20, +2356, VD40 参数顺序:IN→INOUT→OUT 2019/7/6

注意事项 编程软件会自动生成子程序对应的图标; 所有POU均可调用子程序; CPU226的项目中最多可创建128个子程序,其他CPU可创建64个子程序; 子程序可调用别的子程序,一共可嵌套8层; 在中断程序中调用的子程序不能再调用别的子程序; 修改了局部变量表的子程序,需重新调用。 2019/7/6

7.子程序的有条件返回 梯形图: 语句表:CRET 功能:根据前一逻辑终止子程序。 示例: 2019/7/6

8. 有保持功能的电路的处理 如果参数“电机”的数据类型为输出(OUT),两次调用子程序SBR_0,因为保存参数“电机”(L0.2)的存储器是共用的,接通I0.0外接的小开关,Q0.0和Q0.1同时变为ON。 将输出参数“电机”的变量类型改为IN_OUT,参数“电机”返回的运算结果分别用Q0.0和Q0.1保存,解决了上述问题。 2019/7/6

4.6 中断程序与中断指令 4.6.1 中断的基本概念和中断事件 中断功能是用中断程序及时处理中断事件。 4.6 中断程序与中断指令 4.6.1 中断的基本概念和中断事件 中断功能是用中断程序及时处理中断事件。 中断程序不是由用户程序调用,而是在中断事件发生时由操作系统调用。 中断程序由用户编写,越短越好。中断程序与中断事件的联系由用户建立。 中断程序只可调用一级子程序;中断程序不能嵌套。 中断事件如下 2019/7/6

中断事件(表4-12) 通信口中断(优先级最高)(6种) I/O(离散)中断(中)(24种) 定时中断(低)(4种) 中断事件编号 中断事件说明 优先级别群组 组内优先级别 CPU支持 221 222 224 224XP/226 2019/7/6

2019/7/6

4.6.2 中断指令 ENI(Enable Interrupt):允许处理所有中断 DISI(Disable Interrupt):禁止处理所有中断 (允许中断排队等候,但不允许执行中断程序) ATCH(Attach Interrupt):连接中断事件和中断程序,该事件被自动地允许处理。 DTCH(Detach Interrupt):与ATCH相反。进入RUN模式时自动禁止中断。 2019/7/6

中断执行 进入RUN模式时自动禁止中断,在主程序里进行中断初始化(赋初值、中断连接、允许中断);在中断程序里完成中断发生时需执行的操作。 多个中断事件可调用同一中断程序,但一个中断事件只能执行一个中断程序。 CPU自动调用中断程序时需要满足下列条件: 1)执行了全局中断允许指令ENI。 2)执行了中断事件对应的ATCH指令。 3)出现对应的中断事件。 在中断程序中不能出现DISI,ENI、END等指令。 2019/7/6

中断优先级与中断队列溢出 中断优先级分组:通信(最高优先级)、I/O中断和定时中断。在优先级范围内,CPU按照先来先服务的原则处理中断。 任何时刻只能执行一个中断程序,高优先级的中断也不能终止正在执行的中断程序。 多个中断同时发生时,先响应高优先级中断。 2019/7/6

4.6.3 中断程序举例 1.IO中断 【例4-9】出现事故时,I0.0的上升沿产生中断,使Q0.0立即置位。同时将事故发生的日期和时间保存在VB10~VB17中。事故消失时,I0.0的下降沿产生中断,使Q0.0立即复位,同时将事故消失的日期和时间保存在VB20~VB27中。 主程序用来完成中断初始化,常用SM0.1驱动: 赋初值 中断连接 中断允许 中断程序用来完成发生中断时进行的操作,常用SM0.0驱动: 控制Q0.0 保存时间 2019/7/6

中断程序:INT_0 主程序 中断程序:INT_1 2019/7/6

2.定时中断:定时中断0/1、1~255ms 、SMB34/35 【补充例题】每10ms对模拟量AIW0采集一次存于VW100. 中断程序:INT_0 主程序 2019/7/6

3. 定时器T32和T96中断 当前值=预设值时产生中断 最大定时时间32.767s 【例4-11】使用T32中断控制8位节日彩灯,起始低4位灯被点亮,之后每2.5s左移一位。1ms定时器T32定时时间的中断事件号为21。 2019/7/6 主程序

定时中断0/1只需设定好定时时间,系统会自动循环定时; 中断程序:INT_0 小结: 定时中断0/1只需设定好定时时间,系统会自动循环定时; 而定时器T32/T96的中断,不仅需设定时间,还需用户编程实现循环定时! 2019/7/6

4.7 高速计数器与高速脉冲输出指令 普通计数器C0~C255的计数过程与扫描周期有关,只能用于低频信号的计数。 4.7 高速计数器与高速脉冲输出指令 普通计数器C0~C255的计数过程与扫描周期有关,只能用于低频信号的计数。 S7-200有6个高速计数器HSC0~HSC5,可设置13种工作模式。 (High Speed counter) 高速计数器一般与增量式编码器一起使用,可实现高速运动的精确控制。 2019/7/6

4.7.1 高速计数器的工作模式与外部输入信号 编码器把角位移或直线位移转换成电信号,前者称为码盘,后者称为码尺。 按照工作原理编码器可分为增量式和绝对式两类。 增量式编码器是将位移最终转换成计数脉冲,用脉冲的个数表示位移的大小。 绝对式编码器通过输出一个N位二进制数来反映运动物体的绝对位置。 根据输出信号的个数,增量式编码器可分为 单通道:产生一个脉冲序列,可用于单方向测速。 双通道:产生A相B相两独立脉冲序列,可用于判别旋转方向和测速 。 三通道:除A相B相外,还有Z相(码盘每转一圈产生一个脉冲)称为零位脉冲,用作系统清零信号。 2019/7/6

高速计数器的工作模式 模式12:只有HSC0和HSC3支持。HSC0计Q0.0输出的脉冲数,HSC3计Q0.1输出的脉冲数。 1:加;0:减。 1:加;0:减。 <0.3us,等同未出现。 正转,加;反转,减。 1倍速计数;4倍速计数。 2019/7/6

A相上升沿触发计数 A相下降沿触发计数 图4-42 1倍速A/B相正交计数器 2019/7/6

在A、B相的正负边沿均触发计数 图4-43 4倍速A/B相正交计数器 2019/7/6

4.7.2 高速计数器的程序设计 1.高速计数器指令 指令 描述 HDEF HSC, MODE 定义高速计数器的工作模式 HSC N 4.7.2 高速计数器的程序设计 1.高速计数器指令 指令 描述 HDEF HSC, MODE 定义高速计数器的工作模式 HSC N 激活高速计数器(根据特殊内存单元的值配置和控制高速计数器) HSC,N:高速计数器编号(0~5) MODE:工作方式(0~12) 可以用地址HCx读取当前值。 2019/7/6

与高速计数器所对应的特殊寄存器 2019/7/6

2019/7/6

【例4-12】要求高速计数器HSC0用模式0的计数来周期性地控制Q0.1和Q0.2,计数脉冲的周期为1ms。 2. 使用指令向导生成高速计数器的应用程序 【例4-12】要求高速计数器HSC0用模式0的计数来周期性地控制Q0.1和Q0.2,计数脉冲的周期为1ms。 编程思路: 主程序:HSC预设值、HSC工作模式、中断连接、中断允许; 中断程序:有三个,负责中断事件发生时需进行的操作。 2019/7/6

①向导/高速计数器 ②工具/指令向导 HSC指令向导的调用 2019/7/6

HSC指令向导第一步:选高速计数器和工作模式 2019/7/6

HSC指令向导第二步:命名初始化子程序、设置预设值和当前值、设置计数方向 2019/7/6

HSC指令向导第三步:设置中断事件、命名中断程序名 2019/7/6

HSC指令向导第四步—1:设置中断发生时的参数变动 2019/7/6

HSC指令向导第四步—2:设置中断发生时的参数变动 2019/7/6

HSC指令向导第四步—3:设置中断发生时的参数变动 周期计数周期中断:输出值改变几次就有几步中断 2019/7/6

HSC指令向导第五步:结束向导 2019/7/6

初始化子程序只需调用一次,常用SM0.1或边沿指令 2019/7/6

注意:向导只解决有关高速计数器的相关操作,对Q0.1和Q0.2的操作不论是初始化程序还是中断程序中都需要自己添加!!! 向导提供的初始化子程序HSC_INIT 注意:向导只解决有关高速计数器的相关操作,对Q0.1和Q0.2的操作不论是初始化程序还是中断程序中都需要自己添加!!! 2019/7/6

中断程序1: COUNT_EQ 2019/7/6

中断程序2: HSC0_STEP1 2019/7/6

中断程序3: HSC0_STEP2 2019/7/6

4.7.3 高速脉冲输出与开环位置控制 脉冲列PTO(Pulse Train Output) 4.7.3 高速脉冲输出与开环位置控制 脉冲列PTO(Pulse Train Output) 提供周期与脉冲数目可由用户控制的方波脉冲输出。 脉宽调制PWM(Pulse Width Modulation ) 提供连续的、周期与脉冲宽度可由用户控制的输出。 每个CPU由两个PTO/PWM发生器,分别从Q0.0和Q0.1输出脉冲。 Q0.0和Q0.1在用于PTO/PWM功能时,不要再做他用。 在执行PTO/PWM指令前,可用普通的位操作指令进行设置,以控制高速脉冲的起始位置。 2019/7/6

PWM可以us或ms为时间基准指定周期和脉宽。 2019/7/6

PTO可提供单段脉冲串或多段脉冲串(包络)。用户可以us或ms为时间基准指定周期和脉冲个数。 脉宽时间/周期 反应 脉宽时间 >= 周期值 占空比为100%:输出连续运行。 脉宽时间 = 0 占空比为0%:输出关闭。 周期 < 2个时间单位 周期的默认值为两个时间单位。 PTO可提供单段脉冲串或多段脉冲串(包络)。用户可以us或ms为时间基准指定周期和脉冲个数。 周期范围:10~65,535us,或2~65,535ms。 脉冲数范围:1~4,294,967,295个脉冲。 脉冲计数/周期 反应 周期< 2个时间单位 周期的默认值为2个时间单位。 脉冲计数 = 0 脉冲计数的默认值为1次脉冲。 2019/7/6

PWM/PTO的使用 思路:给SM区赋初值,用PLS指令(PLS X)启动PWM/PTO输出。 方法: 用户编程 用“工具/位置控制向导” 0/1 使能位 向导生产的 PWMx子程序 2019/7/6

关于位置控制向导中PTO的设置请参考STEP7-Micro/Win软件的帮助文件: 1.脉冲输出 2.位置控制向导(PTO/PWM配置) 3.其他以PTO开头的文件 2019/7/6

作业 P119(梯形图程序) 6 8 12 16 20 22 24 2019/7/6