玩转S7-300编程(28工控老鬼新浪微博)
- 格式:doc
- 大小:4.61 MB
- 文档页数:69
一、S7-300硬件说明S7-300主要支持的硬件有:(1)电源(PS)电源模块提供了机架和CPU内部的供电电源,置于1号机架的位置。
(2)中央处理器(CPU)CPU存储并处理用户程序,为模块分配参数,通过嵌入的MPI总线处理编程设备和PC、模块、其它站点之间的通讯,并可以为进行DP主站或从站操作装配一个集成的DP接口。
置于2号机架。
(3)接口模块(IM)接口模块将各个机架连接在一起。
不同型号的接口模块可支持机架扩展或PROFIBUS DP连接。
置于3号机架,没有接口模块时,机架位置为空。
(4)信号模块(SM)通常称为I/O(输入/输出)模块。
测量输入信号并控制输出设备。
信号模块可用于数字信号和模拟信号,还可用于进行连接,如传感器和启动器的连接。
(5)功能模块(FM)用于进行复杂的、重要的但独立于CPU的过程,如:计算、位置控制和闭环控制。
(6)通讯处理器(CP)模块化的通讯处理器通过连接各个SIMATIC站点,如:工业以太网,PROFIBUS或串行的点对点连接等。
后三个模块在机架上可以任意放置,系统可以自动分配模块的地址。
需要说明的是,每个机架最多只能安装8个信号模块、功能模块或通讯模块。
如果系统任务超过了8个,则可以扩展机架(每个带CPU的中央机架可以扩展3个机架)。
各个模块的性能具体如下:(1)电源模块(PS)电源模块用于将SIMATIC S7-300 连接到120/230V AC电源。
(2)接口模块接口模块用于多机架配置时连接主机架(CR)和扩展机架 (ER)。
S7-300通过分布式的主机架(CR)和3个扩展机架(ER),可以操作多达32个模块。
运行时无需风扇。
(3)CPU模块各种CPU 有各种不同的性能,例如,有的CPU 上集成有输入/输出点,有的CPU上集成有PROFI- BUS-DP通讯接口等。
以上只是列出了部分指标,设计时还要参看相应的手册。
(4)信号模块信号模块用于数字量和模拟量输入/输出,又分DI/DO(数字量输入/输出)和AI/AO(模拟量输入/输出)模块。
S7-300/400PLC的编程技术编程语言与数据类型1 编程语言STEP-7是S7-300/400系列PLC的编程软件。
梯形图、语句表 (即指令表)和功能块图是标准的STEP-7软件包配备的3种基本编程语言,这3种语言可以在STEP-7中相互转换。
1 顺序功能图(SFC)触点和线圈等组成的独立电路称为网络(Network),如下图所示,编程软件自动为网络编号。
梯形图中的触点和线圈可以使用物理地址,例如I0.1,Q0.3等。
如果在符号表中对某些地址定义了符号,例如令I0.1的符号为“起动”,在程序中可用符号地址“起动”来代替物理地址I0.0,这样使程序易于阅读和理解。
用户可以在网络号右边加上网络的标题,在网络号的下面为网络加上注释。
还可以选择在梯形图下面自动加上该网络中使用的符号的信息。
在分析梯形图中的逻辑关系时,为了借用继电器电路图的分析方法,可以想象在梯形图的左有两侧垂直“电源”之间有一个左正右负的直流电源电压,有一个假想的“能流”(PowerFlow)流过线圈。
利用能流这一概念,可以很好地理解和分析梯形图,能流只能从左向右流动。
•4)功能块图(FBD)功能块图(FBD)使用类似于布尔代数的图形逻辑符号来表示控制逻辑。
一些复杂的功能用指令框来表示,功能块图用类似于与门、或门的方框来表示逻辑运算关系。
•5)结构文本(ST)结构文本(ST)是为IEC61131-3标准创建的一种专用的高级编程语言。
STEP-7的S7 SCL(结构化控制语言)是符合lEC61131-3标准的高级文本语言。
它的语言结构与编程语言Pascal和C相似,所以特别适合于习惯使用高级编程语言的人使用。
•6)S7 HiGraph编程语言图形编程语言S7 HiGraph属于可选软件包,它用状态图(State Graphs)来描述异步、非顺序控制过程的编程语言。
•7)S7 CFC编程语言可选软件包CFC(Continuous Function Chart,连续功能图)用图形方式连接程序库中以块的形式提供的各种功能,包括从简单的逻辑操作到复杂的闭环和开环控制等领域。
第一章 S7-300/400的基本结构1、 S7-300/400属于模块式PLC,主要由机架、CPU模块、信号模块、功能模块、接口模块、通信处理器、电源模块和编程设备(工程师、操作员站和操作屏)组成。
图1-1 PLC控制系统示意图PLC的主要生产厂家:德国的西门子(Siemens)公司,美国Rockwell公司所属的AB公司,GE-Fanuc公司,法国的施耐德(Schneider)公司,日本的三菱和欧姆龙(OMRON)公司。
PLC的工作过程表1-1 逻辑运算关系表与或非Q4.0=I0.0*I0.1 Q4.1 = I0.2+I0.3 Q4.2 =/I0.4I0.0 I0.1 Q4.0 I0.2 I0.3 Q4.1 I0.4 Q4.20 0 0 0 0 0 0 10 1 0 0 1 1 1 01 0 0 1 0 11 1 1 1 1 1在CPU模块上有存储器(用来存放系统程序、用户程序、逻辑变量和其它一些信息),包括ROM和RAM。
可通过扩展槽扩展用户RAM。
l RAM:主程序区OB1+子程序区(FB、FCB、定时中断块等)断电时由锂电池供电(几年)以免RAM中信息丢失。
锂电池电压< 规定值,灯报警,换电池(期间靠电容充电几分钟)。
l PLC采用循环执行用户程序的方式。
OB1是用于循环处理的组织块(主程序),它可以调用别的逻辑块,或被中断程序(组织块)中断。
在起动完成后,不断地循环调用OB1,在OB1中可以调用其它逻辑块(FB, SFB, FC 或SFC)。
循环程序处理过程可以被某些事件中断。
在循环程序处理过程中,CPU并不直接访问I/O模块中的输入地址区和输出地址区,而是访问CPU内部的输入/输出过程映像区。
批量输入、批量输出。
梯形图中Q4.0的线圈(称为内部线圈)―通电‖时,对应的输出过程映像位为1状态。
信号经输出模块隔离和功率放大后,继电器型输出模块中对应的硬件继电器的线圈(外部线圈)通电,其常开触点闭合,使外部负载通电工作。
S7-300/400PLC编程之1 OB块使用指南【工控老鬼】S7-300/400PLC编程之1 OB块使用指南【工控老鬼】S7-300/400PLC编程之2 PLC暖启动和冷启动【工控老鬼】S7-300/400PLC编程之3 模拟量处理【工控老鬼】++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++S7-300/400PLC编程之4 检测导致CPU停机的故障【工控老鬼】S7-300/400PLC编程之4 检测导致CPU停机的故障【工控老鬼】什么是诊断诊断指的是S7-300/400内部集成的识别和记录功能。
记录错误信息的区称为诊断缓冲区。
这个区的大小有赖于CPU型号 (例如:CPU 314 = 100个信息)。
当有错误时如果一个错误或事件发生时,例如:模式转换。
将发生如下事件:将发生什么?•标有时间和日期的信息被保存到诊断缓冲区中。
最近的信息保存到缓冲区的开始。
如果缓冲区满,最旧的信息将覆盖。
•将事件记入系统的状态表中。
•如果必要,将激活一个相关的错误 OB(组织块)。
错误的类型利用CPU的诊断功能,可以识别下面的错误:• CPU或模板中的系统错误• CPU中的程序错误排除故障的手段针对下列故障,应采用不同的手段予以排除:•导致CPU停机的故障,应使用“Module Information”工具。
•逻辑错误,即程序可执行但功能不能实现,应使用“Referece Data”和“Program Status”工具。
•偶尔出现的故障,即只在特定的系统状态下才出现的故障,它可能导致停机或逻辑错误。
可采用“CPU Messages”工具或生成自定义触发点“your own trigger point”。
S7-300/400PLC编程之5 符号使用指南【工控老鬼】S7-300/400PLC编程之5 符号使用指南【工控老鬼】在大家使用step7编程的时候,经常会使用到符号表功能,高效的使用符号表功能可以大大的提高编程的效率,对符号表的使用方法,工控老鬼总结如下!希望对大伙有所帮助!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ S7-300/400PLC编程之6 定时器指令【工控老鬼】在大家使用step7编程的时候,经常会使用定时器指令功能,熟练的掌握定时器指令功能可以帮助我们构造很完善的算法,对定时器指令使用方法,工控老鬼总结如下!希望对大伙有所帮助!之前讲过,可以使用S7-300PLC CPU里自带的标准时钟脉冲来做很多功能,这里我来分享一个例子,如何使用定时器功能来做任意时间间隔的标准时钟脉冲!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++S7-300/400PLC编程之7 工程应用中的信号防抖处理技巧【工控老鬼】S7-300/400PLC编程之7 工程应用中的信号防抖处理技巧【工控老鬼】++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++S7-300/400PLC编程之8 关于OB1的思考【工控老鬼】S7-300/400PLC编程之8 关于OB1的思考【工控老鬼】使用西门子S7-300/400PLC的朋友一定对Step7都不陌生,同时你们也应该对OB1如数家珍,因为你不可能不用到它,它是你的好兄弟!但是我却发现很多的朋友对它的了解还是不够深入,老鬼今天我就简单的给大家分享一下OB1的几个功能!1、信息知多少?打开OB1,在局部数据区域内,是否发现有一些系统自定义的局部变量?没错!有很多,不清楚?那就了解一下吧!2、下表描述了OB1的临时(TEMP)变量。
变量名为OB1的默认名称。
3、重点关注的参数"OB1_MIN_CYCLE"从上次启动后的最大周期(ms) 和 "OB1、_MAX_CYCLE"自上次启动后的最小周期(ms)。
给大家一点启示在CPU硬件配置Cycle/Clock Memory选项卡中 Scan cycle monitoring time选项参数描述的是CPU的循环扫描时间,我们可以结合OB1中的以上2个参数来确定这个扫描时间的值,可以在一定程度上提高CPU的运行效率。
4、“OB1_DATE_TIME"变量是OB1_DATE_TIME数据类型(如下图所示。
),通过读取“OB1_DATE_TIME"变量来获取系统时间。
老鬼对变量整理如下:5、如何读取DATE AND TIME数据类型?仿真结果:显示当前时间为:2012年11月27日22点52分30秒S7-300/400PLC编程之9 如何读取和设定系统时钟【工控老鬼】300/400PLC编程之9 如何读取和设定系统时钟【工控老鬼】系统时钟在使用西门子的系统中经常使用到,大家应该认真的掌握!在这里老鬼就简单的给大家介绍一下系统时钟的读取和设定方法!1、系统硬件配置!【实验环境】2、设定PLC CPU的当前时间方法12、设定PLC CPU的当前时间方法24、设定PLC CPU的当前时间5、在DB块中定义DAT数据类型,用于存储当前CPU时钟。
6、调用系统功能SFC0和SFC1来对时钟进行设定和读取。
7、在变量表中对读取的时间进行监控,当前时间为2012-11-28 16:02:42S7300/400PLC编程之10 Step7软件编程界面快捷键指南【工控老鬼】S7300/400PLC编程之10 Step7软件编程界面快捷键指南【工控老鬼】1、Step7 软件编程界面指南2、界面简介3、一下是常用的快捷键,使用快捷键可以大大的提高工作效率!老鬼特整理出来分享给大家,试一试吧!Normally Closed Contact (Insert Menu)插入常闭触点F3Normally Open Contact (Insert Menu)插入常开触点F2Coil (Insert Menu)插入线圈F7Branch Open (Insert Menu)插入向下分支F8Branch Closed (Insert Menu)插入向上分支F9Empty Box (Insert Menu) 插入指令box ALT+F9Symbol (Insert Menu) 插入符号CTRL+JNetwork (Insert Menu)插入新的网络CTRL+R"Program Elements" Tab 定位到指令树CTRL+GSelect All全选CTRL+AJump to Variable Declaration 切换到变量局部变量申明F6Jump to Next Editing Field 指令切换TABJump to Previous Editing Field 切换编辑区域SHIFT+TABJump to Next Faulty/Empty Editing Field RETURN4、STEP 7 项目结构S7-300/400PLC编程之11 Profibus DP总线诊断【工控老鬼】S7-300/400PLC编程之11 如何对Profibus DP总线上的节点进行诊断?在西门子自动化系统中Profibus DP总线的使用非常广泛,在使用的过程中如何对正在运行的总线设备进行诊断,故障检测,是很有必要的事情,今天老鬼就把这些问题做简要的总结,希望学习完成后大家能够完成对DP总线的诊断和监控应用PROFIBUS-DP和SIMATIC S7诊断评估远程组态时,用户程序可以使用两个不同的S7功能块。
如果除了诊断概要外还需要有关总线节点上错误和故障的详细信息,请使用功能块FB125。
功能块FC125是一个简化版本,它只提供有关“哪些总线节点上发生故障或者错误”的信息(诊断概要)。
该功能块不能显示详细的信息。
1 FB125和FC125的应用领域FB125和FC125可用于下列集成的DP接口和外部DP接口:CPU 313C-2 DPCPU 314C-2 DPCPU 315-2 DP(从6ES7 315-2AF02-0AB0起)CPU315-2 DP(仅适用于6ES7 315-2AF01-0AB0):不能使用FC125FB125不能通过Start/RESET检测到有故障的从站CPU 316-2 DPCPU 318-2 DPC7-626 DP(从6ES7 626-2AG01-0AE3起)C7-633 DP和C7-634 DPSINUMERIK840D带有集成的CPU315-2 DP(6ES7 315-2AF01-0AB0):不能使用FC125FB125不能通过Start/RESET检测到有故障的从站SINUMERIK 840DI,带有集成的CPU315-2 DP(6ES7315-2AF03-0AB0)CPU 41x-2/3/4DPCP 443-5IM467和IM467 FOWIN ACWIN LC不适用于CP 342-52 硬件配置实例老鬼以下面的硬件配置为实例来介绍如何调用FC125【FC_Siemens_DP_Diag】来完成对Profibus总线的诊断。
3 FC125“FC_Siemens_DP_Diag”接口简介接口参数说明CHECK_ACTIVE :为1 时开始检测从站。
EXTERNAL_DP_INTERFACE :选择DP 主站的接口,0 表示集成在CPU 上的DP 主站,1 表示外部DP 主站接口,如CP443-5 等。
DP_MASTERSYSTEM:PROFIBUS的ID 号,在硬件组态中可以查看到PROFIBUS的ID 号。
有几条PROFIBUS网络,就要调用FC125 几次,分别赋值它们的PROFIBUS ID 号,数据类型为INT。
DATA_FIELD :50个字节的数据区,仅供FC125 内部使用,数据类型为POINTER。
SUM_SLAVES_DIAG :从站诊断的总数,数据类型为INT。
LIST_SLAVES_NOT_PRESENT:检查到丢失的从站(软件已经组态但是现场没有连接硬件),16个字节的数据区,每一个数据位对应一个从站,置1 表示一个从站丢失,如果丢失的从站返回或维修好,相对应的位复位。
数据类型为POINTER。
LIST_SLAVES_ERROR :故障的从站(部分模块有故障,其他模块可以连续运行),16 个字节的数据区,每一个数据位对应一个从站,置1 表示一个从站故障,如果故障的从站返回或维修好,相对应的位复位。