6 S7-200可编程控制器 指令集 2019/1/2 PLC指令集.

Slides:



Advertisements
Similar presentations
高等动物的 个体发育 作者:游隆信 松阳一中 二零零二年三月 被子植物子房的结构 及双受精过程 胚珠的结构 花粉管 精 子 卵细胞 极 核 子房壁 珠 被 珠 孔.
Advertisements

水箱水位PLC控制 课题(三) *** 20**年**月**日.
南山中學 102學年度 性別平等教育週性別教育 性騷擾防治.
妇科护理学 据《妇产科护理学》-北京大学医学出版社教材修订 淮北职业技术学院 王存午制作.
第10章 电气控制技术 10.1 常用低压电器 10.2 三相异步电动机继电-接触控制电路 *10.3 可编程控制器
PLC基础及应用 郝 坤 淮南职业技术学院 煤矿机电系.
第十一章 毕生发展.
第一篇 基 础 篇 PLC(programmable logical controller )中文名称可编程控制器,今天PLC其应用已经十分的广泛,在工业领域已经是家喻户晓,PLC的厂家、型号和规格同样也层出不穷。对于有志于PLC应用的人员来说如何面对眼花缭乱的产品,是一个大的挑战。如何面对挑战呢,首先选择一个典型的应用广泛的PLC作为学习、研究的对象,本书选择西门子S7-300系列PLC作为对象。其次,了解和学习PLC的基础知识,最后,掌握综合应用PLC解决实际问题的技术和能力。如果遇到其它plc就可以
高三政治二轮复习系列课件 专题十一  中华文化与民族精神.
第2章 PLC的结构及编程软件的使用 学习内容 S7-200系列PLC的外部结构 S7-200系列PLC的性能 PLC的编程语言与程序结构
移花接木 ~童話故事大改造~ 主講者:王詩雅 簡報設計:王詩雅.
第3章 S7-200可编程序控制器 3.1 S系列PLC发展概述 3.2 S7-200 PLC系统组成 3.3 编程元件及程序知识
项目二 三相异步电动机点动的 PLC 控制.
PLC程序设计及调试 1. 编程工具Programming Tool PLC PLC接口信号与输入输出信号
PLC控制系统设计与运行 模块二:灯光的PLC控制 主讲教师:吴会琴.
《 PLC应用技术》课件 第三章 梯形图编程技巧.
可编程序控制器原理及应用 宫淑贞 王东青 徐世许 编著 主要参考书 《可编程序控制器原理与程序设计》 《可编程序控制器原理 应用 网络》
第8章 继电接触控制系统.
可编程序控制器应用 王如松.
FC OB1 FB SFC 操作系统 SFB OBs 结构化编程 其它
第5章 状态转移图及编程方法 5.1 状态转移图及状态功能 5.2 单流程状态转移图的编程 5.3 选择性分支与汇合的编程
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月26日.
S and STEP7 Basic V10.5 练习.
S7-300PLC的硬件 自动化教研室.
冷凍空調自動控制 - 控制系統範例 李達生.
结构化编程 FC OB1 FB SFC 操作系统 SFB OBs 其它
电气控制及PLC技术 电气工程学院 自动化系 杨霞 2018年1月.
软件调试 目录 页 软件调试的检查表 下装用户程序到 CPU 排除停机错误 系统功能测试的步骤 记录程序的修改 项目文件的归档
2007年高校PLC(西门子)教学研讨会培训.
第8章 通信及网络 8.1 通信及网络概述 8.2 通信实现 8.3 网络通信 8.4 自由口通信.
PLC交流 LTTL1314.
S7-300/400PLC的编程技术 河北机电自动化教研室.
授课人:张宏 单位:江苏省丹阳中等专业学校
PLC与数控机床电器控制 主讲人:何梦佳 中山职业技术学院 机电工程学院.
第二章 Modicon Micro PLC 的结构及基本指令
电气控制及PLC技术 电气工程学院 自动化系 杨霞 2018年1月.
电气控制及PLC技术 电气工程学院 自动化系 杨霞 2018年1月.
第二次研讨课习题 张软玉.
3 S7-200可编程控制器 使用入门 2019/2/17.
第三章 CPM1A系列PLC的基本组成.
1 在平面上畫出角度分別是-45°,210°,675°的角。 (1) (2) (3)
第6章 S7-200系列PLC 通信及网络 本章主要介绍SIMATIC指令集中的常用指令及其使用方法,并以梯形图和语句表两种编程语言为例,讲授指令的结构形式、功能和相关知识。
第四章 数据传送和数据比较指令.
数据块中的数据存储 目录 页 目标 …… 数据存储区 … ……… 数据块 (DB) … STEP 7数据类型概述 STEP 7基本数据类型
4 S7-200可编程控制器 基本概念 2019/4/13.
第一章.
第1章 可编程控制器的硬件 构成及工作原理 1.1 可编程控制器的硬件构成 1.2 可编程控制器的工作原理.
《 PLC应用技术》讲稿 第四章 开关量逻辑控制 赵金荣 编制.
位指令 I0.0 I0.1 Q 8.0 Q 8.1 I 1.0 ( MCR< ) (MCRA) Q 8.0 I 0.0 I 1.1
FP0/VF0 for Filling Machines
第六节 无穷小的比较.
可编程序控制器(PLC)应用技术 第 5 部分 PLC程序的设计.
符号 目录 页 绝对寻址和符号寻址… 符号寻址- 概述… 打开符号表 编辑:查找和替换…… 查看:过滤器 … 查看:排序…… 符号表:导出
第七章 编程实例 例1、设计一个报警器,要求当条件X1=ON满足时蜂鸣器鸣叫,同时报警灯连续闪烁16次,每次亮2s,熄灭3s,然后,停止声光报警。 分析:输入信号占用一个输入点,蜂鸣器和报警灯各占用一个输出点,报警灯亮、暗闪烁,可以采用两个定时器分别控制,而闪烁次数由计数器控制。 I/O分配如下:
F1-20P PLC简易编程器的使用.
本节内容 计算机不会做加法 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第5章 S7-200 PLC编程软件及应用 5.1 编程软件系统概述 5.2 STEP 7-Micro/WIN 32软件功能
《维修电工技师 》 培训教程 编著:宁红星 TEL: QQ: 广州市创星教育培训中心
第4章 S7-200的功能指令 4.1 功能指令概述 4.2 数据处理指令 4.3 数学运算指令 4.4 程序控制指令
第二章 PLC的编程语言.
步進階梯應用 步進階梯指令(STL) 、(RET) STL [S1] :步進階梯開始 ( ) 指令長度: 1 Step
项目二 可编程控制器的 构成及工作原理 2019/8/6.
第五单元 数据处理类应用指令 任务一 用PLC应用指令实现电动机的Y-△启动控制 任务二 用PLC实现闪光灯的闪光频率控制 任务三 密码锁
第5章 数字量控制系统梯形图程序设计方法 5.1 梯形图的经验设计法 5.2 根据继电器电路图设计梯形图的方法
第三章 8086的指令系统 8086指令特点 8086的寻址方式 8086的指令格式及数据类型 8086的指令集.
情境4:运料小车的PLC控制 4.1任务资讯 4.2任务分析 4.3任务决策 4.4任务计划 4.5任务实施 4.6评价提高 S7-200
第三章 可编程控制器概述 第一节 可编程控制器的定义 一、什么是可编程序控制器? 1、什么是可编程序控制器?
E3X-DA-11N光纖處理器簡易調整方法 一.各部位名稱與功能: 動作出力指示燈 感度調整設定與機能變更設定按扭 入光量檢出表示
测试功能 目录 页 程序的状态监视功能 ……………... 2 程序状态监视的模式 …………………………. 3
三角 三角 三角 函数 已知三角函数值求角.
Presentation transcript:

6 S7-200可编程控制器 指令集 2019/1/2 PLC指令集

主要内容 6.1用于描述指令的习惯用语 6.2S7--200存储器范围及特性 6.3位逻辑指令 6.4时钟指令 6.5通讯指令 6.6比较指令 6.7转换指令 6.8计数器指令 6.9高速计数器指令 2019/1/2 PLC指令集

6.10脉冲输出指令 6.11数字运算指令 6.12比例/积分/微分(PID)回路控制指令 6.13中断指令 6.14逻辑操作指令 6.15传送指令 6.16程序控制指令 6.17移位和循环指令 6.18字符串指令 2019/1/2 PLC指令集

6.19表指令 6.20定时器指令 6.21子程序指令 2019/1/2 PLC指令集

6.1用于描述指令的习惯用语 图6-1给出了对一条指令的典型描述,并指出了用于描述指令及其操作的不同区域。指令说明包括LAD、FBD和STL三种格式。操作数表列出了指令的操作数,并给出每个操作数的有效数据类型,存储区的区域及长度。 EN/ENO操作数和数据类型没有在指令操作数表中列出,因为这些操作数对于所有的LAD和FBD指令来说都是一样的。 对于LAD:EN和ENO是能流,为布尔数据类型。 对于FBD:EN和ENO是I、Q、V、M、SM、S、T、C、L或者能流,为布尔数据类型。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

6.2S7--200存储器范围及特性 2019/1/2 PLC指令集

2019/1/2 PLC指令集

6.3位逻辑指令 触点 标准触点 常开触点指令(LD、A和O)与常闭触点指令(LDN、AN和ON)从存储器或者过程映象寄存器中得到参考值。标准触点指令从存储器中得到参考值。(如果数据类型是I或Q,则也可从过程映象寄存器中得到参考值。) 当位值为1时,常开触点闭合;当位值为0时,常闭触点闭合。 在FBD中,与和或操作的输入可以最多扩展到32个。在STL中,常开指令LD、AND或OR或将相应地址位的位值存入栈顶;而常闭指令 LD、AND或OR则将相应地址位的位值取反,再存入栈顶。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

立即触点 立即触点并不依赖于S7--200的扫描周期刷新,它会立即刷新。常开立即触点指令(LDI、AI和OI)和常闭立即触点指令(LDNI、ANI和ONI)在指令执行时得到物理输入值,但过程映像寄存器并不刷新。 当物理输入点状态为1时,常开立即触点闭合;当物理输入点状态为0时,常闭立即触点闭合。常开立即指令LD、AND或OR将物理输入值存入栈顶,而常闭立即指令LD、AND或OR将物理输入的值取反,再存入栈顶。 2019/1/2 PLC指令集

取反指令(NOT) 正、负跳变指令(EU、ED) 2019/1/2 PLC指令集 对于运行模式下编辑(在RUN模式下编辑应用程序),必须为正跳变指令和负跳变指令输入参数。 关于在RUN模式下编辑程序的更多信息参见SIEMENS的详细资料。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

如图6-2中所示,S7--200用逻辑堆栈来决定控制逻辑。在本例中,“iv0”到“iv7”表示逻辑堆栈的初始值,“nv”表示指令提供的一个新值,S0表示逻辑堆栈中存储的计算值。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

线圈 输出(=) 输出指令(=)将新值写入输出点的过程映象寄存器。当输出指令执行时,S7--200将输出过程映象寄存器中的位接通或者断开。在LAD和FBD中,指定点的值等于能流。在STL中,栈顶的值复制到指定位。 立即输出(=I) 当指令执行时,立即输出指令(=I)将新值同时写到物理输出点和相应的过程映象寄存器中。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

当立即输出指令执行时,物理输出点立即被置为能流值。在STL中,立即指令将栈顶的值立即复制到物理输出点的指定位上。“I”表示立即,当指令执行时,新值会同时被写到物理输出和相应的过程映象寄存器。这一点不同于非立即指令,只把新值写入过程映象寄存器。 置位(S)和复位(R) 置位(S)和复位(R)指令将从指定地址开始的N个点置位或者复位。可以一次置位或者复位1--255个点。 2019/1/2 PLC指令集

如果复位指令指定的是一个定时器位(T)或计数器位(C),指令不但复位定时器或计数器位,而且清除定时器或计数器的当前值。 2019/1/2 PLC指令集

立即置位和立即复位 立即置位和立即复位指令将从指定地址开始的N个点立即置位或者立即复位。可以一次置位或复位1到128个点。 “I”表示立即,当指令执行时,新值会同时被写到物理输出和相应的过程映象寄存器。这一点不同于非立即指令,只把新值写入过程映像寄存器。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

逻辑堆栈指令 栈装载与(ALD) 栈装载或(OLD) 2019/1/2 PLC指令集

逻辑推入栈(LPS) 逻辑读栈(LRD) 逻辑弹出栈(LPP) 2019/1/2 PLC指令集

ENO与(AENO) 装入堆栈(LDS) 2019/1/2 PLC指令集 ENO与指令(AENO)对ENO位和栈顶的值进行逻辑与操作,其产生的效果与LAD或者FBD中盒指令的ENO位相同。与操作结果成为新的栈顶。 ENO是LAD和FBD中盒指令的布尔输出。如果盒指令的EN输入有能流并且执行没有错误,则ENO将能流传递给下一元素。您可以把ENO作为指令成功完成的使能标志位。ENO位被用作栈顶,影响能流和后续指令的执行。STL中没有EN输入。条件指令要想执行,栈顶值必须为逻辑1。在STL中也没有ENO输出。但是在STL中,那些与LAD和FBD中具有ENO输出的指令相应的指令,存在一个特殊的ENO位。它可以被AENO指令访问。 装入堆栈(LDS) 装入堆栈指令(LDS)复制堆栈中的第N个值到栈顶。栈底的值被推出并消失。 2019/1/2 PLC指令集

如图6-3中所示,S7--200用逻辑堆栈来决定控制逻辑。在本例中,“iv0”到“iv7”表示逻辑堆栈的初始值,“nv”表示指令提供的一个新值,而“S0”表示逻辑堆栈中存储的计算值。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

RS触发器指令 置位优先触发器是一个置位优先的锁存器。当置位信号(S1)和复位信号(R)都为真时,输出为真。 Bit参数用于指定被置位或者复位的布尔参数。可选的输出反映Bit参数的信号状态。 表6-7中给出了例子程序的真值表。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

6.4时钟指令 读实时时钟(TODR)和写实时时钟(TODW) 写实时时钟(TODW)指令将当前时间和日期写入硬件时钟,当前时钟存储在以地址T开始的8字节时间缓冲区中。 您必须按照BCD码的格式编码所有的日期和时间值(例如:用16#97表示1997年)。图6-4给出了时间缓冲区(T)的格式。 2019/1/2 PLC指令集

时间日期(TOD)时钟在电源掉电或内存丢失后,初始化为下列日期和时间: 日期: 01--Jan--90 时间: 00:00:00 星期: 星期日 2019/1/2 PLC指令集

2019/1/2 PLC指令集

扩展读实时时钟(TODRX) 扩展写实时时钟(TODWX) 扩展读实时时钟(TODRX)指令从PLC中读取当前时间、日期和夏令时组态 ,并装载到从由T指定的地址开始的19字节缓冲区内。 扩展写实时时钟(TODWX) 扩展读实时时钟(TODWX)指令写当前时间、日期和夏令时组态到PLC中由T指定的地址开始的19字节缓冲区内。必须按照BCD码的格式编码所有的日期和时间值(例如:用16#02表示2002年)。表6-9给出了19字节时间缓冲区(T)的格式。 时间日期时钟在电源掉电或内存丢失后,初始化下列日期和时间: 2019/1/2 PLC指令集

日期: 01--Jan--90 时间: 00:00:00 星期: 星期日 2019/1/2 PLC指令集

2019/1/2 PLC指令集

6.5通讯指令 通讯指令 网络读写指令 2019/1/2 PLC指令集 网络读指令(NETR)初始化一个通讯操作,根据表(TBL)的定义,通过指定端口从远程设备上采集数据。 网络写指令(NETW)初始化一个通讯操作,根据表(TBL)的定义,通过指定端口向远程设备写数据。 网络读指令可以从远程站点读取最多16个字节的信息,网络写指令可以向远程站点写最多16个字节的信息。 在程序中,可以使用任意条网络读写指令,但是在同一时间,最多只能有8条网络读写指令被激活。例如,在所给的S7--200 CPU中,可以有4条网络读指令和4条网络写指令,或者2条网络读指令和6条网络写指令在同一时间被激活。 可以使用网络读写向导程序。要启动网络读写向导程序,在命令菜单中选择Tools > InstructionWizard,并且在指令向导窗口中选择网络读写。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

发送(XMT)和接收(RCV)指令 发送指令(XMT)用于在自由口模式下依靠通讯口发送数据。 接收指令(RCV)启动或者终止接收信息功能。必须为接收操作指定开始和结束条件。从指定的通讯口接收到的信息被存储在数据缓冲区(TBL)中。数据缓冲区的第一个数据指明了接收到的字节数。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

使用自由口模式控制串行通讯口 通过编程,可以选择自由口模式来控制S7--200的串行通讯口。当选择了自由口模式,用户程序通过使用接收中断、发送中断、发送指令和接收指令来控制通讯口的操作。当处于自由口模式时,通讯协议完全由梯形图程序控制。SMB30(对于端口0)和SMB130(对于端口1,如果您的S7--200有两个端口的话)被用于选择波特率和校验类型。 当S7--200处于STOP模式时,自由口模式被禁止,重新建立正常的通讯(例如:编程设备的访问)。 2019/1/2 PLC指令集

在最简单的情况下,可以只用发送指令(XMT)向打印机或者显示器发送信息。其它例子包括与条码阅读器、称重计和焊机的连接。在每种情况下,您都必须编写程序,来支持在自由口模式下与S7--200通讯的设备所使用的协议。 只有当S7--200处于RUN模式时,才能进行自由口通讯。要使能自由口模式,应该在SMB30(端口0)或者SMB130(端口1)的协议选择区中设置01。处于自由口通讯模式时,不能与编程设备通讯。 2019/1/2 PLC指令集

将PPI通讯转变为自由口模式 2019/1/2 PLC指令集

发送数据 接收数据 接收指令的启动和结束条件 发送指令使您能够发送一个字节或多个字节的缓冲区,最多为255个。 接收指令使您能够接收一个字节或多个字节的缓冲区,最多为255个。 接收指令的启动和结束条件 接收指令使用接收信息控制字节(SMB87或SMB187)中的位来定义信息起始和结束条件。 2019/1/2 PLC指令集

使用字符中断控制接收数据 为了完全适应对各种协议的支持,也可以使用字符中断控制的方式接收数据。接收每个字符时都会产生中断。在执行与接收字符事件相连的中断服务程序之前,接收到的字符存入SMB2中,校验状态(如果使能的话)存入SM3.0。SMB2是自由口接收字符缓冲区。在自由口模式下,每一个接收到的字符都会存放到这一位置,便于用户程序访问。SMB3用于自由口模式。它包含一个校验错误标志位。当接收字符的同时检测到校验错误时,该位被置位。该字节的其它位被保留。利用校验位去丢弃信息或向该信息发送否定应答。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

6.6比较指令 数值比较 比较指令用于比较两个数值: IN1 = IN2 IN1 >= IN2 IN1 <= IN2 字节比较操作是无符号的。 整数比较操作是有符号的。 双字比较操作是有符号的。 实数比较操作是有符号的。 2019/1/2 PLC指令集

对于LAD和 FBD:当比较结果为真时,比较指令使触点闭合(LAD)或者输出接通(FBD)。 对于STL:当比较结果为真时,对1进行LD,A或O操作,并置入栈顶。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

字符串比较 字符串比较指令比较两个字符串的ASCII码字符: IN1=IN2 IN1<>IN2 当比较结果为真时,比较指令使触点闭合(LAD)或者输出接通(FBD),或者对1进行LD,A或O操作,并置入栈顶(STL)。 2019/1/2 PLC指令集

6.7转换指令 标准转换指令 数字转换 字节转为整数(BTI)、整数转为字节(ITB)、整数转为双整数(ITD)、双整数转为整数(DTI)、双整数转为实数(DTR)、BCD码转为整数(BCDI)和整数转为BCD码(IBCD)。以上指令将输入值IN转换为指定的格式并存储到由OUT指定的输出值存储区中。例如:可以将双整数值转为实数值;也可以在整数和BCD码格式之间相互转换。 2019/1/2 PLC指令集

四舍五入(ROUND)和取整(TRUNC) 四舍五入指令(ROUND)将一个实数转为一个双整数值,并将四舍五入的结果存入OUT指定的变量中。 取整指令(TRUNC)将一个实数转为一个双整数值,并将实数的整数部分作为结果存入OUT指定的变量中。 包络段数 段码指令(SEG)允许您产生一个点阵,用于点亮七段码显示器的各个段。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

ASCII码转换指令 有效的ASCII码字符为十六进制的30到39和41到46。 在ASCII码和十六进制数之间相互转换 ASCII码转十六进制数指令(ATH)将一个长度为LEN从IN开始的ASCII码字符串转换成从OUT开始的十六进制数。十六进制数转ASCII码指令(HTA)将从输入字节IN开始的十六进制数,转换成从OUT开始的ASCII码字符串。被转换的十六进制数的位数由长度LEN给出。 能够被转换的ASCII码字符串或者十六进制数的最大数量为255。有效ASCII码输入 有效的ASCII码输入字符是0到9的十六进制数代码值30到39,和大写字符A到F的十六进制数代码值41到46这些字母数字字符。 2019/1/2 PLC指令集

将数值转为ASCII码 整数转ASCII码(ITA)、双整数转ASCII码(DTA)和实数转ASCII码(RTA)指令,分别将整数、双整数或实数值转换成ASCII码字符。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

字符串转换指令 将数值转换为字符串 整数转字符串(ITS)、双整数转字符串(DTS)和实数转字符串(RTS)指令,将整数、双整数或实数值(IN)转换成ASCII码字符串(OUT)。 2019/1/2 PLC指令集

将子字符串转换为数字值 子字符串转整数(STI)、子字符串转双整数(STD)和子字符串转实数(STR)指令,将从偏移量INDX开始的字符串值IN转换成整数/双整数或实数值OUT。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

编码和解码指令 编码 译码 编码指令(ENCO)将输入字IN的最低有效位的位号写入输出字节OUT的最低有效“半字节”(4位)中。 译码指令(DECO)根据输入字节(IN)的低四位所表示的位号置输出字(OUT)的相应位为1,输出字的所有其他位都清0。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

6.8计数器指令 SIMATIC计数器指令 增计数器 STL操作: H 复位输入:栈顶 H 计数输入:其值被装载在第二个堆栈中。 增计数指令(CTU)从当前计数值开始,在每一个(CU)输入状态从低到高时递增计数。当CXX的当前值大于等于预置值PV时,计数器位CXX置位。当复位端(R)接通或者执行复位指令后,计数器被复位。当它达到最大值(32,767)后,计数器停止计数。 STL操作: H 复位输入:栈顶 H 计数输入:其值被装载在第二个堆栈中。 2019/1/2 PLC指令集

减计数器 减计数指令(CTD)从当前计数值开始,在每一个(CD)输入状态的低到高时递减计数。当CXX的当前值等于0时,计数器位CXX置位。当装载输入端(LD)接通时,计数器位被复位,并将计数器的当前值设为预置值PV。当计数值到0时,计数器停止计数,计数器位CXX接通。 STL操作: H 装载输入:栈顶 H 计数输入:其值被装载在第二个堆栈中。 2019/1/2 PLC指令集

增/减计数器 增/减计数指令(CTUD),在每一个增计数输入(CU)的低到高时增计数,在每一个减计数输入(CD)的低到高时减计数。计数器的当前值CXX保存当前计数值。在每一次计数器执行时,预置值PV与当前值作比较。 当达到最大值(32767)时,在增计数输入处的下一个上升沿导致当前计数值变为最小值(--32768)。当达到最小值(--32768)时,在减计数输入端的下一个上升沿导致当前计数值变为最大值(32767)。 当CXX的当前值大于等于预置值PV时,计数器位CXX置位。否则,计数器位关断。当复位端(R)接通或者执行复位指令后,计数器被复位。当达到预置值PV时,CTUD计数器停止计数。 2019/1/2 PLC指令集

STL操作: H 复位输入:栈顶 H 减计数输入:其值被装载在第二栈位中。 H 增计数输入:其值被装载在第三栈位中。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

6.9高速计数器指令 定义高速计数器 定义高速计数器指令(HDEF)为指定的高速计数器(HSCx)选择操作模式。模块的选择决定了高速计数器的时钟、方向、启动和复位功能。 对于每一个高速计数器使用一条定义高速计数器指令。 高速计数器 高速计数器指令(HSC)在HSC特殊存储器位状态的基础上配置和控制高速计数器。参数N指定高速计数器的标号。 2019/1/2 PLC指令集

高速计数器可以被配置为12种模式中的任意一种,详细情况可参考SIEMENS S7-200系统手册。 每一个计数器都有时钟、方向控制、复位、启动的特定输入。对于双相计数器,两个时钟都可以运行在最高频率。在正交模式下,您可以选择一倍速(1x)或者四倍速(4x)计数速率。所有计数器都可以运行在最高频率下而互不影响。 2019/1/2 PLC指令集

高速计数器编程 可以使用指令向导来配置计数器。向导程序使用下列信息:计数器的类型和模式、计数器的预置值、计数器的初始值和计数的初始方向。要启动HSC指令向导,可以在命令菜单窗口中选择Tools >Instruction Wizard ,然后在向导窗口中选择HSC指令。 2019/1/2 PLC指令集

对高速计数器编程,必须完成下列基本操 高速计数器的编程示例省略。 定义计数器和模式 设置控制字节 设置初始值 设置预置值 指定并使能中断服务程序 激活高速计数器 高速计数器的编程示例省略。 2019/1/2 PLC指令集

6.10脉冲输出指令 脉冲输出指令(PLS)用于在高速输出(Q0.0和Q0.1)上控制脉冲串输出(PTO)和脉宽调制(PWM)功能。 请参阅资料光盘上应用示例中使用PLS指令进行PTO/PWM操作的程序。见应用示例7、22、23、30和50。 2019/1/2 PLC指令集

6.11数字运算指令 加、减、乘、除指令 加法 减法 IN1+IN2=OUT IN1--IN2=OUT LAD和FBD IN1+OUT=OUT OUT--IN1=OUT STL 整数加法(+I)或者整数减法(--I)指令,将两个16位整数相加或者相减,产生一个16位结果。双整数加法(+D)或者双整数减法(--D)指令,将两个32位整数相加或者相减,产生一个32位结果。实数加法(+R)和实数减法(--R)指令,将两个32位实数相加或相减,产生一个32位实数结果。 2019/1/2 PLC指令集

乘法 除法 IN1*IN2=OUT IN1/IN2=OUT LAD和FBD IN1*OUT=OUT OUT/IN1=OUT STL 整数乘法(*I)或者整数除法(/I)指令,将两个16位整数相乘或者相除,产生一个16位结果。(对于除法,余数不被保留。)双整数乘法(*D)或者双整数除法(/D)指令,将两个32位整数相乘或者相除,产生一个32位结果。(对于除法,余数不被保留。)实数乘法(*R)或实数除法(/R)指令,将两个32位实数相乘或相除,产生一个32位实数结果。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

数学功能指令 正弦、余弦和正切 正弦(SIN)、余弦(COS)和正切(TAN)指令计算角度值IN的三角函数值,并将结果存放在OUT中。输入角度值是弧度值。 SIN(IN)= OUT COS(IN)=OUT TAN(IN) =OUT 要将角度从度数变为弧度,可以使用MUL_R(*R)指令,将度数乘以1.745329E--2(接近π/180)即可。 2019/1/2 PLC指令集

自然对数和自然指数 平方根 自然对数指令(LN)计算输入值IN的自然对数,并将结果存放到OUT中。 自然指数指令(EXP)计算输入值IN的自然指数值,并将结果存放到OUT中。 LN (IN) = OUT EXP (IN)=OUT 平方根 平方根指令(SQRT)计算实数(IN)的平方根 ,并将结果存放到OUT中。 SQRT(IN)=OUT 2019/1/2 PLC指令集

递增和递减指令 2019/1/2 PLC指令集 递增 递减 递增或者递减指令将输入IN加1或者减1,并将结果存放在OUT中。 IN+1=OUT LAD和 FBD OUT+1=OUT STL 递减 IN -- 1=OUT LAD和 FBD OUT -- 1=OUT STL 递增或者递减指令将输入IN加1或者减1,并将结果存放在OUT中。 字节递增(INCB)和字节递减(DECB)操作是无符号的。 字递增(INCW)和字递减(DECW)操作是有符号的。 双字递增(INCD)和双字递减(DECD)操作是有符号的。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

PID回路控制指令(PID)根据输入和表(TBL)中的配置信息,对相应的LOOP执行PID回路计算。 2019/1/2 PLC指令集

6.13中断指令 中断允许(ENI)和中断禁止(DISI) 当进入RUN模式时,初始状态为禁止中断。在RUN模式,您可以执行全局中断允许指令(ENI)允许所有中断。全局中断禁止指令 (DISI)不允许处理中断服务程序,但中断事件仍然会排队等候。 2019/1/2 PLC指令集

中断条件返回(CRETI) 中断连接(ATCH) 中断分离(DTCH) 中断连接指令(ATCH)将中断事件EVNT与中断服务程序号INT相关联,并使能该中断事件。 中断分离(DTCH) 中断分离指令(DTCH)将中断事件EVNT与中断服务程序之间的关联切断,并禁止该中断事件。 2019/1/2 PLC指令集

清除中断事件(CLR—EVENT) S7--200支持的中断类型 S7--200支持下列类型的中断服务程序: I/O中断:S7--200对I/O点状态的各种变化产生中断事件。这些事件可以对高速计数器、脉冲输出或输入的上升或下降状态做出响应。 时基中断:S7--200产生使程序在指定的间隔上起作用的事件。 2019/1/2 PLC指令集

中断优先级和中断队列 在各个指定的优先级之内,CPU按先来先服务的原则处理中断。任何时间点上,只有一个用户中断程序正在执行。一旦中断程序开始执行,它要一直执行到结束。而且不会被别的中断程序,甚至是更高优先级的中断程序所打断。当另一个中断正在处理中,新出现的中断需要排队,等待处理。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

6.14逻辑操作指令 取反指令 字节、字和双字取反 使ENO=0的错误条件: 受影响的SM标志位: 字节取反(INVB)、字取反(INVW)和双字取反(INVD)指令将输入IN取反的结果存入OUT中。 使ENO=0的错误条件: H 0006(间接寻址) 受影响的SM标志位: H SM1.0(结果为0) 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

与、或和异或指令 字节与、字与和双字与 字节或、字或和双字或 字节与(ANDB)、字与(ANDW)和双字与(ANDD)指令将输入值IN1和IN2的相应位进行与操作,将结果存入OUT中。 字节或、字或和双字或 字节或(ORB)、字或指令(ORW)和双字或(ORD)指令将两个输入值IN1和IN2的相应位进行或操作,将结果存入OUT中。 2019/1/2 PLC指令集

字节异或、字异或和双字异或 字节异或(ROB)、字异或(ORW)和双字异或(ORD)指令将两个输入值IN1和IN2的相应位进行异或操作,将结果存入OUT中。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

6.15传送指令 字节、字、双字或者实数传送 字节传送(MOVB)、字传送(MOVW)、双字传送(MOVD)和实数传送指令在不改变原值的情况下将IN中的值(MOVR)传送到OUT。 2019/1/2 PLC指令集

字节立即传送(读和写) 字节立即传送指令允许您在物理I/O和存储器之间立即传送一个字节数据。 字节立即读(BIR)指令读物理输入(IN),并将结果存入内存地址(OUT),但过程映像寄存器并不刷新。 字节立即写指令(BIW)从内存地址(IN)中读取数据,写入物理输出(OUT),同时刷新相应的过程映像区。 2019/1/2 PLC指令集

块传送指令 字节、字、双字的块传送 N的范围从1到255。 字节块传送(BMB)、字块传送(BMW)和双字块传送(BMD)指令传送指定数量的数据到一个新的存储区,数据的起始地址IN,数据长度为N个字节、字或者双字,新块的起始地址为OUT。 N的范围从1到255。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

6.16程序控制指令 条件结束 条件结束指令(END)根据前面的逻辑关系终止当前扫描周期。可以在主程序中使用条件结束指令,但不能在子程序或中断服务程序中使用该命令。 停止 停止指令(STOP)导致CPU从RUN到STOP模式从而可以立即终止程序的执行。 如果STOP指令在中断程序中执行,那么该中断立即终止,并且忽略所有挂起的中断,继续扫描程序的剩余部分。完成当前周期的剩余动作,包括主用户程序的执行,并在当前扫描的最后,完成从RUN到STOP模式的转变。 2019/1/2 PLC指令集

看门狗复位 看门狗复位指令(WDR)允许S7--200 CPU的系统看门狗定时器被重新触发,这样可以在不引起看门狗错误的情况下,增加此扫描所允许的时间。 使用WDR指令时要小心,因为如果您用循环指令去阻止扫描完成或过度的延迟扫描完成的时间,那么在终止本次扫描之前,下列操作过程将被禁止: 2019/1/2 PLC指令集

通讯(自由端口方式除外) I/O更新(立即I/O除外) 强制更新 SM位更新(SM0,SM5~SM29不能被更新) 运行时间诊断 由于扫描时间超过25秒,10ms和100ms定时器将不会正确累计时间。 在中断程序中的STOP指令 带数字量输出的扩展模块也包含一个看门狗定时器,如果模块没有被S7--200写,则此看门狗定时器将关断输出。在扩展的扫描时间内,对每个带数字量输出的扩展模块进行立即写操作以保持正确的输出。请参考这段描述之后的实例。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

For--Next循环指令 FOR和NEXT指令可以描述需重复进行一定次数的循环体。每条FOR指令必须对应一条NEXT指令。For--Next循环嵌套(一个For--Next循环在另一个For--Next循环之内)深度可达8层。 FOR--NEXT指令执行FOR指令和NEXT指令之间的指令。必须指定计数值或者当前循环次数INDX、初始值(INIT)和终止值(FINAL)。 NEXT指令标志着FOR循环的结束。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

跳转指令 跳转到标号指令(JMP)执行程序内标号N指定的程序分支。标号指令标记跳转目的地的位置N。 可以在主程序、子程序或者中断服务程序中,使用跳转指令。跳转和与之相应的标号指令必须位于同一段程序代码(无论是主程序、子程序还是中断服务程序)。 不能从主程序跳到子程序或中断程序,同样不能从子程序或中断程序跳出。 可以在SCR程序段中使用跳转指令,但相应的标号指令必须也在同一个SCR段中。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

顺控继电器(SCR)指令 SCR指令使得能够按照自然工艺段在LAD、FBD或STL中编制状态控制程序。 装载SCR指令(LSCR)将S位的值装载到SCR和逻辑堆栈中。 SCR堆栈的结果值决定是否执行SCR程序段。SCR堆栈的值会被复制到逻辑堆栈中,因此可以直接将盒或者输出线圈连接到左侧的能流线上而不经过中间触点。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

分支控制 在许多实例中,一个顺序控制状态流必须分成两个或多个不同分支控制状态流。当一个控制状态流分离成多个分支时,所有的分支控制状态流必须同时激活,如图 6-33所示。 使用多条由相同转移条件激活的SCRT指令,可以在一段SCR程序中实现控制流的分支,如下面的实例所示。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

合并控制 与分支控制的情况类似,两个或者多个分支状态流必须合并为一个状态流。当多个状态流汇集成一个时,我们称之为合并。当控制流合并时,所有的控制流必须都完成,才能执行下一个状态。图 6-34给出了两个控制流合并的示意图。 在SCR程序中,通过从状态L转到状态L’,以及从状态M转到状态M’的方法实现控制流的合并。当状态L’、M’的SCR使能位为真时,即可激活状态N,如下例所示。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

诊断LED指令( DIAG_LED) 如果输入参数IN的值为零,就将诊断LED置为OFF。如果输入参数IN的值大于零,就将诊断LED置为ON(黄色)。 当系统块中指定的条件为真或者用非零IN参数执行DIAG_LED指令时,CPU发光二极管(LED)标注的SF/DIAG可以被配置用于显示黄色。 系统块(配置LED)复选框选项: 当有一项在CPU内被强制时,SF/DIAGLED为ON(黄色) 当模块有I/O错误时,SF/DIAGLED为ON(黄色) 两个配置LED选项都不选中,将使SF/DIAG黄光只受DIAG_LED指令控制。CPU系统故障(SF)用红光指示。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

6.17移位和循环指令 右移(SHR)和左移(SHL)指令 移位指令将输入值IN右移或左移N位,并将结果装载到输出OUT中。 移位指令对移出的位自动补零。如果位数N大于或等于最大允许值(对于字节操作为8,对于字操作为16,对于双字操作为32),那么移位操作的次数为最大允许值。如果移位次数大于0,溢出标志位(SM1.1)上就是最近移出的位值。如果移位操作的结果为0,零存储器位(SM1.0)置位。 字节操作是无符号的。对于字和双字操作,当使用有符号数据类型时,符号位也被移动。 2019/1/2 PLC指令集

循环右移(ROR)和循环左移(ROL)指令 循环移位指令将输入值IN循环右移或者循环左移N位,并将输出结果装载到OUT中。循环移位是圆形的。 如果位数N大于或者等于最大允许值(对于字节操作为8,对于字操作为16,对于双字操作为32),S7--200在执行循环移位之前,会执行取模操作,得到一个有效的移位次数。移位位数的取模操作的结果,对于字节操作是0到7,对于字操作是0到15,而对于双字操作是0到31。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

移位寄存器指令(SHRB) 移位寄存器指令将一个数值移入移位寄存器中。移位寄存器指令提供了一种排列和控制产品流或者数据的简单方法。使用该指令,每个扫描周期,整个移位寄存器移动一位。 移位寄存器指令把输入的DATA数值移入移位寄存器。其中,S_BIT指定移位寄存器的最低位,N指定移位寄存器的长度和移位方向(正向移位=N,反向移位=--N)。 SHRB指令移出的每一位都被放入溢出标志位(SM1.1)。 这条指令的执行取决于最低有效位(S_BIT)和由长度(N)指定的位数。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

字节交换指令(SWAP) 字节交换指令用来交换输入字IN的高字节和低字节。 2019/1/2 PLC指令集

6.18字符串指令 字符串指令 字符串长度 字符串复制 字符串连接 字符串长度指令(SLEN)返回IN中指定的字符串的长度值。 字符串复制指令(SCPY)将IN中指定的字符串复制到OUT中。 字符串连接 字符串连接指令(SCAT)将IN中指定的字符串连接到OUT中指定字符串的后面。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

从字符串中复制子字符串 从字符串中复制子字符串指令(SSCPY)从INDX指定的字符号开始,将IN中存储的字符串中的N个字符复制到OUT中。 2019/1/2 PLC指令集

字符串搜索 字符串搜索指令(SFND)在IN1字符串中寻找IN2字符串。由OUT指定搜索的起始位置。如果在IN1中找到了与IN2中字符串相匹配的一段字符,则OUT中会存入这段字符中首个字符的位置。如果没有找到,OUT被清0。 字符搜索 字符搜索指令(CFND)在IN1字符串中寻找IN2字符串中的任意字符。由OUT指定搜索的起始位置。如果找到了匹配的字符,字符的位置被写入OUT中。如果没有找到,OUT被清0。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

6.19表指令 填表 ATT指令向表(TBL)中增加一个数值(DATA)。表中第一个数是最大填表数(TL),第二个数是实际填表数(EC),指出已填入表的数据个数。新的数据填加在表中上一个数据的后面。每向表中填加一个新的数据,EC会自动加1。 一个表最多可以有100条数据。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

先进先出和后进先出 一个表可以有最多100条数据。 先进先出(FIFO) 后进先出(LIFO) 先进先出(FIFO)指令从表(TBL)中移走第一个数据,并将此数输出到DATA。剩余数据依次上移一个位置。每执行一条本指令,表中的数据数减1。 后进先出(LIFO) 后进先出(LIFO)指令从表(TBL)中移走最后一个数据,并将此数输出到DATA。每执行一条本指令,表中的数据数减1。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

内存填充(FILL) 存储器填充指令(FILL)用输入值(IN)填充从输出(OUT)开始的N个字的内容。 N的范围从1到255。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

查表(FND) 查表指令(FND)搜索表,以查找符合一定规则的数据。查表指令从INDX开始搜索表(TBL),寻找符合PTN和条件(=、<>、<或>)的数据。命令参数CMD是一个1~4的数值,分别代表=、<>、<和>。 如果发现了一个符合条件的数据,那么INDX指向表中该数的位置。为了查找下一个符合条件的数据,在激活查表指令前,必须先对INDX加1。如果没有发现符合条件的数据,那么INDX等于EC。 一个表可以有最多100条数据。数据条标号从0到99。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

6.20定时器指令 SIMATIC定时器指令 接通延时定时器(TON) 有记忆的接通延时定时器(TORN) 断开延时定时器(TOF) 接通延时定时器(TON)和有记忆的接通延时定时器(TONR)在使能输入接通时记时。定时器号(Txx)决定了定时器的分辨率,并且分辨率现在已经在指令盒上标出了。 断开延时定时器(TOF) 断开延时定时器用于在输入断开后延时一段时间断开输出。定时器号(Txx)决定了定时器的分辨率,并且分辨率现在已经在指令盒上标出了。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

时间间隔定时器 触发时间间隔(BITIM) 计算时间间隔(CITIM) CITIM自动处理在最大间隔内发生的1毫秒定时器翻转。 触发时间间隔(BITIM)指令读内置的1毫秒计数器的当前值,并将此值存储到OUT中。双字毫秒值的最大定时间隔是2的32次幂或49.7天。 计算时间间隔(CITIM) 计算时间间隔(CITIM)指令计算当前时间和IN提供的值之间的时间差。时间差被存储在OUT中。双字毫秒值的最大定时间隔是2的32次幂或49.7天。依据于BITIM指令执行的时间, CITIM自动处理在最大间隔内发生的1毫秒定时器翻转。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

6.21子程序指令 子程序调用指令(CALL)将程序控制权交给子程序SBR_N。 调用子程序时可以带参数也可以不带参数。子程序执行完成后,控制权返回到调用子程序的指令的下一条指令。 子程序条件返回指令(CRET)根据它前面的逻辑决定是否终止子程序。 要添加一个子程序可以在命令菜单中选择:Edit > Insert >Subroutine。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

在主程序中,可以嵌套调用子程序(在子程序中调用子程序),最多嵌套8层。在中断服务程序中,不能嵌套调用子程序。 在被中断服务程序调用的子程序中不能再出现子程序调用。不禁止递归调用(子程序调用自己),但是当使用带子程序的递归调用时应慎重。 2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

2019/1/2 PLC指令集

谢谢,欢迎指正! 2019/1/2 PLC指令集