PA8000PLC中文手册.docx
《PA8000PLC中文手册.docx》由会员分享,可在线阅读,更多相关《PA8000PLC中文手册.docx(87页珍藏版)》请在冰豆网上搜索。
PA8000PLC中文手册
PA8000PLC中文手册
此手册供开放式架构数控系统PA8000的PLC编程人员参考使用,编程人员在进行
PLC编程之前请认真阅读本手册。
手册中将介绍如何利用系统中自带的PLC编程工具进行编程,同时介绍编程指令及格式等,手册中的编程格式为ST,其它的编程格式不详细介绍。
最后将以一铣床的PLC程序为例加深对程序的懂得
为了使手册更加通俗易懂,手册中并没有介绍所有的与PLC有关的内容,用户如有需要可向机床制造商索取专门的介绍资料。
期望调试人员能通过对本手册的阅读更快地熟练PLC编程。
PLC-1131-S3为PLC编程提供了一个完善的环境,为PLC程序员处理各种程序
提供了一个简单而又功能强大的途径,它的编程和调试基于完善的环境和高级编程语言(类似与VisualC++)。
2.1PLC-1131-3DS功能简介
工程文件的结构:
工程文件的后缀名为pro,在新工程中建立的第一个程序结构单元(ProgramOrganizationUnit)将被自动命名为PLC_PRG,那个程序结构单元就类似于C
语言中的主程序。
在PLC_PRG中能够调用各种函数及功能块,而函数和功能块都属于程序结构单元。
PLC-1131-3DS能够区分在同一工程中的不同对象:
程序结构单元(POU)
数据类型(datatypes)
资源(resources)
工程的设置:
1)第一应该设置PLC的输入输出以保证工程中使用的地址的准确性。
2)接着建立解决咨询题的程序结构单元
3)选择适当的语言编写程序
4)写好程序之后,对程序进行编译去除程序中的所有错误。
工程的测试:
当工程之中的所有错误被去除之后激活仿真模式,确实是与仿真PLC连接,与此同时将工程下载到PLC中,如此PLC-1131-3DS就处于在线方式了。
现在能以适当的顺序测试工程了,手动改变输入变量的值,观看输出是否正确。
用PLC-1131-3DS调试程序
当程序发生错误时,你能够设置断点。
当处理发生中断时,你就能够及时的在断点处检查所有工程变量的值。
工作在单步方式(singlestep)下,能够检验程序的逻辑错误。
你能够强制输入或输出变量的值。
使用流操纵(flowcontrol)能够明白哪些程序段差不多执行。
采样轨迹(SamplingTrace)显示变量在长时刻的变化过程曲线。
整个工程能够以文本文件的形式导出。
总而言之PLC-1131-3DS关于PLC编程是一种完善和方便的工具。
2.2PLC-1131-3DS差不多概念
此节包括一些重要的概念关心你熟悉PLC-1131-3DS
2.2.1工程的组成
工程(Project)
一个工程包括了PLC程序中所有的对象,工程中包含了如下对象:
程序结构单元POUs
数据类型datatypes
资源resources
库函数libraries
程序结构单元(POU)
函数 (Functions),功能块(functionblocks)和程序(programs)差不多上程序结构单元(POUs)。
每个POU包括了定义变量和程序主体两个部分。
程序主体用IEC编程语言编写,其中包括:
指令表(IL)
结构文本(ST)
SFC
FBD
梯形图(LD).
PLC-1131-3DS支持所有的标准IEC程序结构单元。
POUs之间能够相互调用,然而不承诺递归调用.
函数(Function)
当定义函数的时候,不要不记得函数中必须含有返回值的数据类型,也确实是讲在函数名的后面必需紧跟冒号和一个数据类型。
下面是一个正确的函数定义:
FUNCTIONINDUAL:
INT
确实是讲函数名被用作输出变量。
函数定义的以关键字FUNCTION开始,以END_FUNCTION结尾。
ExampleinILofafunctionthattakesthreeinputvariablesandreturnstheproductofthefirsttwodividedbythethird:
Image0.1:
Function
{bmcbild2_1.bmp}
ExampleofafunctioninIL
函数没有任何的内部条件,确实是讲当用相同的输入变量时就会得出相同的结果(输出)。
Examplesforcallingupthefunctiondescribedabove
Examplesforcallingupthefunctiondescribedabove:
inST:
Result:
=Fct(7,2,4);
程序(Program)
程序是一种程序结构单元,在运行过程中返回一定数量的值。
程序在整个工程中都能够被识别。
{bmcbild2_8.bmp}
Exampleofaprogram
程序能够被调用,但不承诺在函数中调用程序。
如果在程序结构单元中调用程序时程序的返回值有变化,这些变化将保持到下一次程序调用,即使程序程序是从其它程序结构单元调用的。
程序由起始关键字PROGRAM开始,END_PROGRAM终止。
.
Examplesofcallsoftheprogramdescribedabove
inST:
PRGExample;
Res:
=PRGexample.PAR;
IfthevariablePARfromtheprogramPRGexampleisinitializedbyamainprogramwith0,andthenoneaftertheotherprogramsarecalledwithabovenamedprogramcalls,thentheRESresultintheprogramswillhavethevalues1,2,and3.Ifoneexchangesthesequenceofthecalls,thenthevaluesofthegivenresultparametersalsochangeinacorrespondingfashion.
PLC_PRG
PLC_PRG是一个专门的预先定义的程序结构单元,任何工程都必须含有那个专门的程序。
每次循环的过程中调用一次PLC_PRG。
在新工程建立之后第一次执行"Project""ObjectAdd"命令时,程序结构单元对话框中的初始输入项确实是名为PLC_PRG的程序类型。
注意:
不要删除或者重命名PLC_PRG
Resources
设置和组织工程所需的资源:
全局变量GlobalVariables
PLC设置PLCConfiguration
任务配置TaskConfiguration
采样轨迹SamplingTrace
观看和接收治理器WatchandReceiptManager
库函数(Libraries)
库函数"standard.lib"是一个标准的函数库,可供程序进行调用。
在此手册中编程语言以结构文本编程指令为例,其它的指令格式不作详细介绍。
结构文本编程指令(StructuredText)包括了一系列的编程语句,如条件语句
("IF..THEN..ELSE"),循环语句(WHILE..DO)等等。
下面确实是一个结构文本指令格式的一段小程序
IFvalue<7THEN
WHILEvalue<8DO
value:
=value+1;
END_WHILE;
END_IF;
3.1表达式
表达式指操作数被赋值后返回一个确定值的结构。
表达式由运算符和操作数组成,操作数能够是常数、变量、调用函数或则其它
表达式。
3.2表达式的运算
按照各种运算符优先级别依次运算得到最后的结果。
具有最高优先权的运算符最先运算,接着运算第二优先级别的运算符...直到得出最后结果。
具有相同优先级别的运算符按照从左到右的顺序运算。
下面给出结构文本的运算符:
运算符
符号
优先级别
括号
(表达式)
最高
函数调用
函数名(参数)
求幂
**
求反
-
NOT
乘
除
求余
*
/
MOD
加
减
+
-
比较
<,>,<=,>=
等于
不等于
=
<>
逻辑与
AND
异或
XOR
逻辑或
OR
最低优先级
3.3结构文本格式编程格式指令
指令类型
例子
赋值(Assignment)
A:
=B;CV:
=CV+1;C:
=SIN(X);
调用功能块或者函数的返回值(CallingafunctionblockanduseoftheFBoutput)
CMD_TMR(IN:
=%IX5,PT:
=300);
A:
=CMD_TMR.Q
返回(RETURN)
RETURN;
IF(条件)
D:
=B*B;
IFD<0.0THEN
C:
=A;
ELSIFD=0.0THEN
C:
=B;
ELSE
C:
=D;
END_IF;
CASE(分支)
CASEINT1OF
1:
BOOL1:
=TRUE;
2:
BOOL2:
=TRUE;
ELSE
BOOL1:
=FALSE;
BOOL2:
=FALSE;
END_CASE;
FOR(循环)
J:
=101;
FORI:
=1TO100BY2DO
IFARR[I]=70THEN
J:
=I;
EXIT;
END_IF;
END_FOR;
WHILE(循环)
J:
=1;
WHILEJ<=100ANDARR[J]<>70DO
J:
=J+2;
END_WHILE;
REPEAT(重复)
J:
=-1;
REPEAT
J:
=J+2;
UNTILJ=101ORARR[J]=70
END_REPEAT;
EXIT(退出)
EXIT;
Emptyinstruction(空指令)
;
用结构文本编程格式编写的程序与其它格式的编程语言相比出错概率低,编写的程序具有可读性高的特点。
InstructioninStructuredText
赋值运算(Assignmentoperator)
此操作将右边表达式的结果赋给左边的操作数。
符号为:
=
例:
Var1:
=Var2*10;
调用功能块(Callingafunctionblock)
结构文本编程格式通过在功能块名后面的括号里分配参数值来调用功能块的功能
在下面的例子中通过分配参数IN和PT的值调用一定时器功能块,它的结果变量的值被赋给变量A。
CMD_TMR(IN:
=%IX5,PT:
=300);
A:
=CMD_TMR.Q
返回指令(RETURNinstruction)
返回指令用来终止函数调用,当条件满足时返回主程序
条件指令(IFinstruction)
使用IF指令检验是否满足条件,当条件满足时执行相应的的指令
语法:
IF<布尔表达式_1>THEN
{ELSIF<布尔表达式_2>THEN
.
.
ELSIF<布尔表达式_n>THEN
ELSE
}
END_IF;
{}里面的内容是可选的。
如果<布尔表达式1>的返回值为真(TRUE),那么只有被执行,而其它的指令
不执行。
否则检验<布尔表达式2>的返回值是否为真,如此连续判定<布尔表达式n>的返回值,直到返回值为真时执行对应的指令。
如果执行到最后表达式的返回值也没有为真,那么执行。
例:
IFtemp<17
THENheating_on:
=TRUE;
ELSEheating_on:
=FALSE;
END_IF;
这段程序操纵加热功能的开启和关闭,当温度高于17度时不加热,当温度低于17度时就加热。
分支指令(CASEinstruction)
使用分支指令能够将一些具有相同条件变量的指令结合在一个结构中
语法:
CASE<变量1>OF
<=1>:
<指令1>
<=2>:
<指令2>
...
<=n>:
<指令n>
ELSE
END_CASE;
CASE指令按照下面的模式处理程序:
如果变量的值为i,那么执行<指令i>中的指
令。
如果没有相应的变量的值,那么执行ELSE指
令
如果需要几个不同的变量值执行相同的指令,那么能够将几个变量值写在一起用逗号隔开,后面接需要执行的指令。
例:
CASEINT1OF
1,5:
BOOL1:
=TRUE;
BOOL3:
=FALSE;
2:
BOOL2:
=FALSE;
BOOL3:
=TRUE;
ELSE
BOOL1:
=NOTBOOL1;
BOOL2:
=BOOL1ORBOOL2;
END_CASE;
循环指令(FOR)
<步长Stepsize>}DO
<指令Instructions>使用FOR循环指令能够重复程序处理的过程。
语法:
整形变量INT_Var:
INT;
FOR<整形变量INT_Var>:
=<初始值INIT_VALUE>TO<终止值END_VALUE>{BY
END_FOR;
{}中的内容可选的.
只要中的计数值不大于就重复执行中的指令。
在执行指令之前就检验那个条件,如果条件得不到满足就不执行
中的指令。
当指令被执行一次之后<整形变量INT_Var>就增加
中的相应值。
当得到大于的条件时就
停止循环。
例:
FORCounter:
=1TO5BY1DO
Var1:
=Var1*2;
END_FOR;
Res:
=Var1;
我们假设Var1的初始值为1,那么循环终止时变量Var1的值为32。
循环指令(WHILEloop)
WHILE循环指令的用法与FOR循环指令相似,它们的不同之处在于WHILE循环的判定条件有些不同,它能够是任何布尔表达式。
也确实是讲只要满足你给定的条件时,就执行循环指令。
语法:
WHILE<布尔表达式>
<指令>
END_WHILE;
只要<布尔表达式>的返回值为真TRUE,也确实是条件满足的时候,<指令>将重复执行,直到<布尔表达式>的返回值为假FALSE。
如果在第一次判定条件时就不满足,那么没有执行一次指令循环就终止了。
当<布尔表达式>的返回值始终为真时,指令就无限的循环执行下去,进入死循环状态。
这在编程时要尽量幸免。
例:
WHILEcounter<>0DO
Var1:
=Var1*2;
Counter:
=Counter-1;
END_WHILE
WHILE循环和REPEAT循环在某种意义上来讲比FOR循环更有用,因为在某种情形下我们不能确定循环的次数,在这种情形下只能用WHILE循环指令或者REPEAT循环指令。
然而FOR循环指令的循环次数是一定的,因此用FOR循环指令编程能够幸免死循环的显现。
循环指令(REPEATloop)
REPEAT循环指令不同于WHILE循环指令的地点在于指令执行条件的判定顺序,REPEAT循环指令在判定条件之前就执行指令,也确实是讲REPEAT循环指令至少能够执行一次而不考虑判定条件。
WHILE循环指令就不同,可能指令一次也不执行就终止循环。
语法:
REPEAT
<指令>
UNTIL<布尔表达式>
END_REPEAT;
当<布尔表达式>的返回值为真时,确实是讲判定条件满足的时候就终止循环。
如果<布尔表达式>在第一次检验的时候满足条件,那么整个循环只执行一
次。
如果条件始终得不到满足,进入死循环状态,编程时需尽量幸免这种情形的发生。
例:
REPEAT
Var1:
=Var1*2;
Counter:
=Counter-1;
UNTIL
Counter=0
END_REPEAT;
退出指令(EXITinstruction)
如果EXIT指令显现在FOR、WHILE、REPET循环指令里面的时候,循环将不考虑中断条件是否满足就无条件中断正在进行中的循环。
4.1主窗口
打开PLC-1131-3DS的主窗口之后,你能够看到下列元件(从上到下)
菜单栏
工具栏(可选)
对象治理器有程序结构单元(POUs)选项卡、数据类型(Datatypes)选项卡、资源(Resources)选项卡
对象治理和编程区域之间的分隔条
编程区域
消息窗口(可选)
状态栏(可选)
菜单栏(menulbar)
菜单栏位于主窗口的最上面,包括所有的菜单命令
工具栏(toolbar)
通过工具栏能够快速选择执行菜单栏中的一些常用的命令。
在激活不同的窗口中时菜单栏中的快捷按钮会有所不同,只需用鼠标单击菜单栏中的快捷按钮就相当于执行了菜单栏中的命令。
如果将鼠标放在工具栏的按钮上一段时刻,会显示出该命令的名称。
工具栏是可选的,如果不需要显示工具栏的时候,你能够将"Project"菜单下"Options"名目中的Desktop选项中toolbar去除
为了方便讲明,用"Project""Options"表示"Project"菜单下"Options"命令。
对象治理器(ObjectOrganizer)
对象治理器位于主窗口的左边。
在对象治理器的下面有4个选项卡,
POUs,
Datatypes和
Resources,用鼠标单击不同的选项卡就改变了相应的对象类型。
在讲明书的后面将介绍如何建立、删除对象,如何在对象治理器中治理各种对象。
屏幕分隔栏(Screendivider)
屏幕分隔栏是两个不重叠窗口的分界线,在PLC-1131-3DS中在对象治理器
窗口与编程区窗口之间有一个屏幕分隔栏。
编程区里面的定义变量窗口与程序主体窗口之间也有一屏幕分隔栏。
你能够按鼠标左键移动屏幕分隔栏。
编程区域(Workspace)
编程区域位于主窗口的右侧,所有的对象编辑和函数库治理操作差不多上在那个区域进行操作的。
PLC-131-3DS的程序编辑将在讲明书的后面作详细介绍。
在"Window"菜单下,你能够找到所有的窗口治理命令。
消息窗口(Messagewindow)
消息窗口在主窗口编程区的下面,它包含了编译、检验和比较的信息。
当程序编译出错时,鼠标双击消息窗口中的一条错误信息,程序将跳转到对应的程序行自动查找错误。
你也能够用"Edit""Nexterror"和"Edit""Previouserror"命令实现在相邻两个错误之间迅速跳转。
消息窗口的显示是可选的("Window""Messages"命令).
状态栏(Statusbar)
在PLC-1131-3DS中,状态栏在主窗口的底部。
它显示当前工程的信息和菜单
命令的注释。
状态栏的的右边以黑字体显示时,表示工程处在该状态下,灰字体则表示该状态未被激活。
例如工程工作在在线方式下,Online变成黑颜色,以离线方式运行时Online就变成灰颜色。
在线模式下,你能够明白现在处于模拟方式(SIM),程序正被处理(RUNS),设置断点(BP),强制变量(FORCE)。
状态栏的显示是可选的,通过"Project""Options"名目下的Desktop选项决定是否显示。
4.2工程治理
工程治理的命令能够在"File"和"Project"菜单下找到。
"File""New"
工具栏中的符号:
建立一个空的工程,文件名为"Untitled",当储存文件时必须改变工程名。
"File""Open"
工具栏中的符号:
打开一个差不多存在的工程。
选择菜单或工具栏命令后弹出一对话框,从中选择差不多存在的工程文件,文件后缀名为".pro",对话框如下图所示:
{bmcbild4_16.bmp}
Dialogboxforopeningafile
"File""Close"
关闭当前打开的工程。
如果工程被修改过,PLC-1131-3DS将询咨询是否储存。
"File""Save"
在工具栏中的符号:
Shortcut:
+
储存工程中所做的任何修改。
"File""Saveas"
用此命令可将当前的工程储存为另外一个文件,而不改变原始文件。
当运行此命令之后,在弹出储存对话框中选择差不多存在的文件名和文件格式或者重新输入一个文件名。
对话框如图所示:
{bmcbild4_17.bmp}
DialogboxforSaveas
"File""Print"
快捷方式:
+打印当前活动窗口。
运行此命令之后,弹出打印对话框选择打印设置,然后点击OK按钮。
打印对话框如下图所示L:
{bmcbild4_18.bmp}
Printdialogbox
在打印对话框中能够选择打印范畴,numberofthecopies(副本数量)等。
单
击Properties(属性)按钮,打开设置打印机的对话框。
你也能够用"File""PrinterSetup"命令决定打印输出的版面格式
当需要打印整个工程的时候,使用"Project""Document"命令。
"File""Printersetup"
运行此命令时弹出如图所示的对话框,能够设置打印页的输出格式。
{bmcbild4_19.bmp}
PageLayoutDialogBox
你能够将页面设置储存为后缀名为".dfr"的文件,初始默认文件名为DEFAULT.DFR。
如果期望改变现有的页面设置,你能够单击Browse(扫瞄)按钮在弹出的对话框中选择期望的页面设置。
"File""Exit"
快捷方式:
+
退出PLC-1131-3DS系统。
"Project""Checkall"!
运行此命令将检查程序的静态错误。
若在程序中发觉错误,将在信息窗口中给出出错信息以及出错的行号。
"Project""Build"
运用此命令将所有作过修改的程序结构单元重建。
如此当载入PLC程序的时候,就只需将作过修改的程序传送到PLC中,而其余的程序在PLC中保持不变。
注意:
"Build"命令只有在支持在线修改的PLC-1131-3DS中才起作用,否则"Build"命令的功能与"Rebuildall"命令的功能完全相同,不起实际作用"Pr