基于PLC的教学挖土机的控制研究翻译.docx
《基于PLC的教学挖土机的控制研究翻译.docx》由会员分享,可在线阅读,更多相关《基于PLC的教学挖土机的控制研究翻译.docx(53页珍藏版)》请在冰豆网上搜索。
基于PLC的教学挖土机的控制研究翻译
编程的概念、惯例及特点
S7--200周而复始地执行应用程序,控制一个任务或过程。
利用STEP7--Micro/WIN可以创建一个用户
程序并将它下载到S7--200中。
STEP7--Micro/WIN软件中提供了多种工具和特性用于完成和调试应用程序。
在本章中
设计一个微型PLC系统的指导原则.................................52
程序的基本组件.....................................................53
用STEP7--Micro/WIN创建用户程序.........................................55
选择SIMATIC和IEC1131--3指令集.........................................57
理解程序编辑器中使用的惯例..........................................58
使用向导帮您创建控制程序...............................................60
S7--200中的出错处理..................................................60
在数据块中指定地址和初始值...........................................62
用符号表来定义变量的符号地址.........................................62
使用局部变量................................................................63
用状态图来监视用户程序................................................63
创建一个指令库.....................................................64
应用程序的调试......................................................64
51
S7-200可编程序控制器系统手册
设计一个微型PLC系统的指导原则
设计一个微型PLC系统有许多设计方法。
以下这些通用的指导原则适用于许多设计项目。
当然,您所在公司的规程和您在培训中接受的实践经验是必须遵循的。
分解控制过程或者机器
将您的控制过程或者机器分解成相互独立的部分。
分解决定了控制器之间的界,并将影响功能描述和资源的分配。
创建功能说明
写出过程或者机器每一部分的操作描述。
包括下列主题:
I/O点、操作的功能描述、在允许每个执行器(例如螺线管、电机和驱动器)动作之前必须达到的状态、关于操作员界面的描述以及与过程或机器其他部分相连的任何接口的描述。
安全电路的设计
识别要求设计硬件安全线路的设备。
控制设备在不安全的条件下出现故障,会造成不可预料的启动或者机器操作的变化。
在不可预料或者不正确的机器操作会造成人身伤害或严重的财产损失的场合,应该考虑采用独立于S7--200的机电超驰控制来防止不安全的操作。
在设计安全电路时,应考虑以下几点:
识别有可能不合适或者不可预料操作有可能会造成危害的执行机构。
识别确保操作不发生危害的条件,并决定如何独立于CPU来检测这条件。
识别上电或断电时,CPU和I/O对过程有何影响,识别错误何时被检测出来。
这个信息只能用于
常规的和可以预料的异常操作,不能用于保障安全的目的。
设计独立于CPU的手动或机电超驰控制来阻止危险的操作。
向CPU提供独立电路的状态信息,便于程序和操作员界面得到需要的信息。
识别其他与过程安全操作相关的安全要求。
指定操作员站
根据功能描述的要求建立操作员站的组态图。
包括如下内容:
与过程或者机器有关的每个操作员站的位置总图。
操作员站
与CPU或扩展模块有关的电气图
52
创建组态图
根据功能描述的要求建立控制设备的组态图。
包括如下内容:
和过程或者机器有关的每个CPU的位置图。
CPU和扩展I/O模块的机械布局图(包括控制柜和其他设备)。
每个CPU和扩展模块的电气图(包括设备型号、通讯地址和I/O地址)。
建立符号名表(可选)
/
如果选择了符号名寻址,需要对绝对地址建立一个符号名表。
符号名表不仅包括物理输入输出信号,
还包括程序中用到的其他元件。
程序的基本组件
一个程序块由可执行代码和注释组成。
可执行代码由主程序和若干子程序或者中断程序组成。
代码编
译后下载到S7--200中;但不编译和下载程序注释。
可以使用组织单元(主程序、子程序和中断程序)来结构化您的控制程序。
以下例子程序包括一个子程序和一个中断程序。
该范例程序使用一个定时中断,每100ms读一次模拟
量的输入值。
实例:
一个程序的基本组件
MNetwork1//在第一个扫描周期,调用子程序。
ALDSM0.1
ICALLSBR_0
N
SNetwork1//设置时间间隔为100ms
B//用于定时中断。
R//允许中断0。
0LDSM0.0
MOVB100,SMB34
ATCHINT_0,10
ENI
INetwork1//采样模拟量输入4
NLDSM0.0
TMOVWAIW4,VW100
0
主程序
主程序中包括控制应用的指令。
S7--200在每一个扫描周期中顺序执行这些指令。
主程序也被表示为OB1。
子程序
只有在调用时才执行程序的这些可选单元:
由主程序、中断程序或另一个子程序执行。
当您希望重复执行某项功能时,子程序是非常有用的。
与其在主程序中的不同位置多次使用相同的程序代码,不如将这段程序逻辑写在子程序中,然后在主程序中需要的地方调用。
调用子程序有如下优点:
用子程序可以减小程序的长度
由于将代码从主程序中移出,因而用子程序可以缩短程序扫描周期。
S7--200在每个扫描周期
中处理主程序中的代码,不管代码是否执行。
而子程序只有在被调用时,S7--200才会处理其代码。
在不调用子程序时,S7--200不会处理其代码。
用子程序创建的程序代码是可传递的。
您可以在一个子程序中完成一个独立的功能,然后将它
复制到另一个应用程序中而无需作重复工作。
提示
在子程序中使用存储器地址会制它的可移殖性。
因为一个程序对于存储器地址的分配有可能与
(L)
另一个程序对其分配有冲突。
相比之下,在子程序中的所有变量地址都使用局部变量存储器,会
使子程序有极高的可移殖性。
因为当子程序使用局部变量时,子程序与程序的其他部分之间不会有地址冲突。
中断程序
中断程序是应用程序中的可选组件。
当特定的中断事件发生时,中断程序执行。
您可以为一个预先定义好的中断事件设计一个中断程序。
当特定的事件发生时,S7--200会执行中断程序。
中断程序不会被主程序调用。
只有当中断程序与一个中断事件相关联,且在该中断事件发生时,S7--200才会执行中断程序。
提示
因为无法预测何时会产生中断,所以应考虑尽量限制中断程序和程序中其他部分所共用的变量个数。
使用中断程序中的局部变量,可以保证中断程序只使用临时存储器,并且不会覆盖程序中其他部分使用的数据。
为了保证主程序与中断程序正确地共享数据,您可以使用许多编程技巧。
关于这些技巧的描述在第6章的中断指令部分有详细说明。
程序中的其他组件
其他块中也包含了S7--200的信息。
当您下载程序时,您可以选择同时下载这些块。
系统块
系统块系统块允许您为S7--200组态不同的硬件参数。
数据块
数据块存储应用程序中所使用的不同变量值(V存储器)。
可以用数据块输入数据的初始值。
数据块
用STEP7--Micro/WIN创建用户程序
要打开STEP7--Micro/WIN,可以双击STEP7--Micro/WIN图标,也可以在命令菜单中选择开始>
SIMATIC>STEP7MicroWINV4.0。
如图5--1所示,STEP7--Micro/WIN项目窗口为创建您的控制
程序提供了一个便利的工作环境。
工具栏提供常用的菜单命令的快捷按钮。
您可以显示或者隐藏任意工具栏。
操作栏为访问STEP7--Micro/WIN中不同的
程序组件提供了一组图标。
指令树显示了所有的项目对象和创建您的
控制程序所需要的指令。
您可以将指令从
指令树中拖到您的应用程序中,也可用双
击指令的方法将该指令插入到程序编辑器
中的当前光标所在地。
程序编辑器中包括程序逻辑和局部变量
表。
您可以在局部变量表中为临时的局部
变量定义符号名。
在程序编辑器的底部有程序编辑器
子程序和中断程序的标签。
点击这些标签,您可以在主程序、子程序和中断程序指令树之间切换。
操作栏
图5--1STEP7--Micro/WIN
STEP7--Micro/WIN提供用于创建程序的三个编辑器:
梯形图(LAD)、语句表(STL)和功能块图
(FBD)。
尽管有一定制,但是用任何一种程序编辑器编写的程序都可以用另外一种程序编辑器来浏
程序览和编辑。
编辑器
STL编辑器的特点
STL编辑器按照文本语言的形式显示程序。
STL编辑器允许您输入指令助记符来创建您的控制程序。
语句表也允许您创建用LAD和FBD编辑器无法创建的程序。
这是因为您在使用S7--200的本族语言进
行编程,而在图形编辑器中,为了正确地画出图形,必须遵守一规则。
如图5--2所示,文本方式与
汇编语言的编程方式十分相象。
S7--200从上到下按照程序的次序执行每一
条指令,然后回到程序的开始重新执行。
LDI0.0//读入一个输入
STL使用一个逻辑堆栈来分析控制逻辑。
AI0.1//和另一个输入进行“与”
您插入STL指令来处理堆栈操作。
=Q1.0//向输出1写入值
图5--2STL程序示例
当您选择STL编辑器时,考虑以下要点
STL最适合于有经验的程序员。
STL有时让您能够解决用LAD或者FBD不容易解决的问题。
当使用STL编辑器时,只能使用SIMATIC指令集。
虽然您可以用STL编辑器看或者编辑用LAD或者FBD编辑器编写的程序,但是反之不一定成
立。
LAD或者FBD编辑器不一定总能显示所有利用STL编辑器编写的程序。
55
S7-200可编程序控制器系统手册
LAD编辑器的特点
LAD编辑器以图形方式显示程序,与电气接线图类似。
梯形图程序允许程序仿真来自电源的电流通过一系列的逻辑输入条件,决定是否启用逻辑输出。
一个LAD程序包括左侧提供功率流的能量线。
闭合的触点允许能量通过它们流到下一个元素,而打开的触点阻止能量的流动。
逻辑控制是分段的,程序在同一时间执行一段,从左到右,从上到下。
图5--3给出了LAD程序的一个例子。
不同的指令用不同的图形符号表示。
它包括三种基本形式。
触点代表逻辑输入条件,例如;开关、按钮或者内部条件等。
线圈通常表示逻辑输出结果,例如:
灯负载、电机启动器、中间继电器或者内部输出条件。
图5--3LAD程序示例
盒表示其他一些指令,例如:
定时器、计数器或者数学运算指令。
当您选择LAD编辑器时,考虑以下要点:
梯形图逻辑易于初学者使用。
图形表示法易于理解而且全世界通用。
LAD编辑器能够使用SIMATIC和IEC1131--3指令集。
可以使用STL编辑器显示所有用SIMATICLAD编辑器编写的程序。
FBD编辑器的特点
FBD编辑器以图形方式显示程序,由通用逻辑门图形组成。
在LAD编辑器中看不到触点和线圈,但是有等价的、以框指令形式出现的指令。
图5--4中给出了FBD程序的一个例子。
FBD不使用左右电轨概念;因此,“功率流”术语用于表达流过FBD逻辑块的控制流的类比概念。
图5--4FBD程序示例
逻辑“1”通过FBD元素称为功率流。
功率流的原始输入和最终的输出可以直接分配给操作数。
(AND)
程序逻辑由这框指令之间的连接决定。
也就是说,一条指令例如框的输出可以用来允许另一条指令(例如定时器),这样可以建立所需要的控制逻辑。
这样的连接概念使您可以解决各种各样的逻辑问题。
当您选择FBD编辑器时,考虑以下要点:
图形逻辑门的表示形式有利于程序流的跟踪。
FBD编辑器能够使用SIMATIC和IEC1131--3指令集。
可以使用STL编辑器显示所有用SIMATICFBD编辑器编写的程序。
56
SIMATIC和IEC1131--3指令集的选择
大部分PLC产品提供相似的基本指令,但是不同厂商的PLC产品在它们的表示和操作上常常有小的差
别。
近年来,国际电工委员会(IEC)推出了一个有关PLC编程各个方面的一个全球标准。
这个标准鼓励
不同的PLC厂商向用户提供与IEC指令集的表示和操作一致的指令。
S7--200提供两种指令集用于完成各种自动化任务。
IEC指令集符合PLC编程的IEC1131--3标准,而
SIMATIC指令集是专门为S7-200设计的。
提示
当将STEP7--Micro/WIN设置为IEC模式时,它在未按IEC1131--3标准定义的指令旁的指令树中,将显示为红色菱形。
在SIMATIC指令集和IEC1131--3指令集之间有一主要区别。
IEC1131--3指令集是不同PLC厂商的指令标准。
SIMATIC指令集中的一些指令并不是
IEC1131--3规范中的标准指令。
这些是仍在使用的非标准指令,但是如果使用它们,程序就不
再严格的与IEC1131--3兼容。
一IEC指令可以接受多种数据格式,这个概念通常指多重功能。
例如,数学指令盒中不区分ADD_I(整数加法)和ADD_R(实数加法),而是在加法指令中检查被加数的格式,并自动选择正确的CPU指令。
这样可以节省宝贵的程序设计时间。
当使用IEC1131--3指令时,自动检查指令参数并选择合适的数据格式。
数据格式检不需要用户介入。
例如,如果您给一个位操作指令输入一个整数值,就会出现一个错误。
这样,可以有助于减少编程的语法错误。
在选择SIMATIC或IEC指令集时,应考虑以下因素:
SIMATIC指令通常执行时间最短。
一、EC指令的执行时间较长。
一IEC指令与SIMATIC指令操作数不同,例如定时器指令、计数器指令、乘法指令和除法指令等。
您可以在全部的三种程序编辑器(LAD、STL、FBD)中使用SIMATIC指令集,但只能在LAD和FBD编辑器中使用IEC指令。
对于不同品牌的PLC,IEC指令的操作是标准的,因而创建IEC程序的知识与PLC操作平台无关。
因为IEC标准中定义的指令少于SIMATIC指令集,因而可以用SIMATIC指令完成更多功能。
IEC1131--3规定变量必须使用类型声明,而且支持系统数据类型检。
57
理解程序编辑器中使用的惯例
STEP7--Micro/WIN在所有程序编辑器中使用以下惯例:
在符号名前加#(#Var1)表示该符号为局部变量。
在IEC指令中%表示直接地址。
操作数符号“?
.?
”或“?
?
?
?
”表示需要一个操作数组态。
LAD程序被分为程序段。
程序段是构成一个完整电路连接的所有触点、线圈和框的有序排列:
没有短
路、没有开路、没有逆向功率流条件。
STEP7--Micro/WIN允许您为LAD程序中的每一个程序段加注
释。
FBD编程使用程序段的概念对程序进行分段和注释。
STL程序不使用程序段;然而,可使用NETWORK关键字对程序进行分段。
LAD编辑器中使用的惯例
在LAD编辑器中,可以使用F4、F6和F9来快速输入触点、盒和线圈指令。
LAD编辑器使用下列
惯例:
符号“------>>”表示开路或者需要功率流连接。
符号“”示指令输出功率流,可以级连或串联。
符号“>>”表示您可以使用功率流。
FBD编辑器中使用的惯例
在FBD编辑器中,可以使用F4、F6和F9来快速输入AND、OR和框指令。
FBD编辑器使用下列惯例:
在操作数上的符号“------>>”表示功率流或者操作数指示器。
它也可用于表示开路或者需要功率流连接。
符号“”表示指令输出功率流,可以级连或串联。
符号“<<”和“>>”表示您可以使用数值或功率流。
取非圆圈:
通过输入上的小圆圈来表示逻辑
“非”条件或操作数或功率流的反向条件。
在
图5--5中,Q0.0等同于I0.0“与”I0.1的
“非”。
“非”泡仅适用于布尔型信号,可将
它它们们指指定为参定为参数数或或功功率率流流。
图5--5FBD惯例
立即指示符:
如图5--5所示,FBD编辑器将输入上带有垂直线的布尔型操作数的直接条件显
示给FBD指令。
立即输入直接从物理输入点上读取数据。
立即操作数只能用物理输入点。
无输入或输出的框:
无输入的框表示独立于功率流的指令。
提示
AND和OR指令的操作数的个数可以扩展到最多32个。
要增加或者减少操作数的个数,用键盘上的“+”或者“--”。
58
第5章
S7--200编程的通用惯例
EN/ENO的定义
EN(允许输入)是LAD和FBD中框的布尔输入。
要使框指令执行,必须使功率流到达这个输入。
在STL中,指令没有EN输入,但是要想使STL指令执行,堆栈顶部的逻辑值必须是“1”。
ENO(允许输出)是LAD和FBD中框的布尔输出。
如果框的EN输入有功率流并且指令正确执行,则ENO输出会将功率流传递给下一元素。
如果指令的执行出错,则功率流在出错的框指令处被中断。
在STL中没有允许输出,但是STL指令象相关的有ENO输出的LAD和FBD指令一样,置位一个特殊的
ENO位。
这个位可以用ANDENO(AENO)指令访问,并且可以产生与框的ENO位相同的作用。
提示
EN/ENO操作数和数据类型并没有在每条指令中的操作数表中给以说明,因为这一操作数在所有
LAD和FBD指令中都是一样的。
表5--1列出了这LAD和FBD中的操作数和数据类型。
这些操作数
对本手册中介绍的所有LAD和FBD指令均适用。
表5--1LAD和FBD中EN/ENO操作数和数据类型
/
程序编辑器输入输出操作数数据类型
LADEN、ENO功率BOOL
FBDENENOIQVMSMSTCLBOOL
、、、、、、、、、
/
条件输入无条件输入
在LAD和FBD中,依赖于功率流的框或线圈,肯定有其他元素在它的左侧。
而独立于功率流的框或线
圈,其左侧则直接连接到能量线。
表5--2展示了一个既有条件输入又有无条件输入的实例。
没有输出的指令
无法级连的框指令被表示为没有布尔输出。
这些包括子程序调用、跳转和条件返回指令。
梯形线圈也
只能放在能量线之后。
这些指令包括标签、装载SCR、SCR条件结束和SCR结束指令。
它们在FBD
中以框指令的形式表示,并以无标签的能量输入和无输出来辨别。
比较指令
0
无论是否有功率流,比较指令都会被执行。
如果无功率流则输出。
如果有功率流,输出值取决于比
较结果。
虽然是作为一个触点来执行操作,但是SIMATICFBD、IEC梯形图和IECFBD比较指令都
是以盒的形式表示的。
59
使用向导帮您创建控制程序
STEP7--Micro/WIN提供向导使您的编程变得更自动更容易。
在第章6中,具有相关向导的指令会有以下指令向导图标:
S7--200中的出错处理
S7--200将错误分为致命错误和非致命错误。
您可以通过选择PLC>信息菜单命令,来查看因错误而产生的错误代码。
图5--6给出了PLC信息对话框,其中包括错误代码和错误描述。
“上个致命错误”域显示S7--200发生的前一致命错误代码。
如果RAM区具有保持性,则在整个电源周期内也将保持该数值。
当S7--200全清或者RAM区掉电保护失败时,该区也被清除。
“致命错误总计”域是前一次CPU清除所有存储区后产生致命错误的次数。
如果RAM区具有保持性,则在整个电源周期内也会保持该数值。
当S7--200全清或者RAM区掉电保护失败时,该区也被清除。
CS7-200
附录列出了的错误代码,而附录D描述了可以用于监视错误的特殊存储区(SM)位。
图5--6PLC信息对话框
非致命错误
非致命错误是指用户程序结构问题、用户程序指令执行问题和扩展I/O模块问题。
您可以用
STEP7--Micro/WIN来得到所产生错误的错误代码。
非致命错误有三个基本的分类。
程序编译错误
当下载程序时,S7--200会编译程序。
如果S7--200发现程序违反了编译规则,会停止下载并产生一个错误代码。
(已经下载到S7-200中的程序将仍然在永久存储区