《TwinCAT编程软件介绍》由会员分享,可在线阅读,更多相关《TwinCAT编程软件介绍(75页珍藏版)》请在金锄头文库上搜索。
1、第一讲第一讲TwinCAT PLC 概述概述TwinCAT PLC是基于是基于Beckhoff 系列可编程现场总线控制器(系列可编程现场总线控制器(PFC)的编)的编程开发系统与可视化图形监控工具软件。程开发系统与可视化图形监控工具软件。 TwinCAT 符合符合IEC61131-3国际标准,提供标准的开国际标准,提供标准的开发环境与基于该标准的发环境与基于该标准的5种程序设计语言:种程序设计语言:指令表布尔助记符程序设计语言(指令表布尔助记符程序设计语言(IL:InstructionList)梯形逻辑程序设计语言(梯形逻辑程序设计语言(LD:LadderDiagram)功能块程序设计语言(功
2、能块程序设计语言(FBD:FunctionBlockDiagram)顺序功能流程图程序设计语言(顺序功能流程图程序设计语言(SFC:SequentialFunctionChart)结构化文本程序设计语言(结构化文本程序设计语言(ST:StructuredText)IEC61131-3标准是PLC编程语言的国际标准。TwinCAT PLC编程语言符合该标准的规定。编程语言符合该标准的规定。依照这个标准,一个程序包含以下几个部分:l数据结构lPOUsl全局变量常规的编程语言都包含标识符,地址,类型,注释及常数。TwinCAT PLC功能:功能:第一讲第一讲TwinCAT PLC概述概述丰富的程序功
3、能指令丰富的程序功能指令 TwinCAT PLC提供了位逻辑运算、整数与浮点数运算、定时器与计数器功能、比较与赋值功提供了位逻辑运算、整数与浮点数运算、定时器与计数器功能、比较与赋值功能、移位与循环功能、数据类型转换功能、能、移位与循环功能、数据类型转换功能、 PID功能等大量丰富的程序功能指令。功能等大量丰富的程序功能指令。 此外,此外, 用户用户还可以根据特定需要编写自己的功能块、子程序。还可以根据特定需要编写自己的功能块、子程序。离可在线程序仿真离可在线程序仿真用户应用程序计算机中进行仿真执行,无须将其下载到用户应用程序计算机中进行仿真执行,无须将其下载到PFC中,方便用户对程序的测试与
4、中,方便用户对程序的测试与修改并节省了开发时间。修改并节省了开发时间。在线监视在线监视在程序离线仿真或联机运行的过程中,在程序离线仿真或联机运行的过程中,用户可以在用户可以在TwinCAT PLC中以文本或图形的方式监中以文本或图形的方式监视程序运行状态及数据变化情况。视程序运行状态及数据变化情况。诊断与调试诊断与调试在程序离线仿真或联机运行的过程中,用户可以通过在程序中设置断点、逐步执行程序、在程序离线仿真或联机运行的过程中,用户可以通过在程序中设置断点、逐步执行程序、手动为变量赋值的方式对程序进行诊断与调试。手动为变量赋值的方式对程序进行诊断与调试。 编程工具组件:编程工具组件:第一讲第一
5、讲TwinCAT PLC概述概述用户手册用户手册通讯电缆通讯电缆软件光盘及授权软件光盘及授权 系统要求系统要求:计算机计算机:IntelPentium或更高或更高操作系统:操作系统:内存:内存:16MBRAM(Windows9X)64MBRAM(WindowsNT4.0)至少至少10MB本机硬盘空间本机硬盘空间鼠标鼠标2倍速以上光驱倍速以上光驱RS232串行口串行口通讯电缆通讯电缆RS232POU包括函数包括函数(Function)、)、功能块功能块(FunctionBlock)、)、程序(程序(Program)三种类三种类型。型。每一个每一个POU包含两部分:变量声明部分与程序包含两部分:变
6、量声明部分与程序指令部分。程序指令部分由五种语言(指令部分。程序指令部分由五种语言(IL、LD、SFC、FBD、ST)之一编写。之一编写。IEC标准功能块包含在标准功能块包含在“standard.lib”函数函数库文件中,每一个项目均默认加载库文件中,每一个项目均默认加载standard.lib。某一某一POU可在另一可在另一POU中被调用,程序中不允中被调用,程序中不允许递归调用(但是可以简接的完成递归)。许递归调用(但是可以简接的完成递归)。变量声明部分变量声明部分程序指令部分程序指令部分 TwinCAT PLC以项目(以项目(Project)的方式管理用户的应用程序,所有的项目数据存在)
7、的方式管理用户的应用程序,所有的项目数据存在有一个项目名称的文件中,一个项目包含如下组件:有一个项目名称的文件中,一个项目包含如下组件:POU、数据类型、程序资源、函数库与、数据类型、程序资源、函数库与可视化元素。一个新的项目的第一个可视化元素。一个新的项目的第一个POU,系统会自动的给定名称,系统会自动的给定名称MAIN,这是程序的起点,这是程序的起点(相当于(相当于C程序中的主函数)。从这里开始,就可以调用其他的程序中的主函数)。从这里开始,就可以调用其他的POU。TwinCAT PLC中中的的POU(programorganizeunit程序组织单元程序组织单元)1、函数(、函数(Fun
8、ction)TwinCAT PLC中中的的POUFunction作为一类作为一类POU,包含一部分程序,这包含一部分程序,这部分程序可以在主程序中被多次调用,部分程序可以在主程序中被多次调用,Function在被调用时返回一个数据。在被调用时返回一个数据。Function在在基于脚本的程序设计语言(如基于脚本的程序设计语言(如ST)中可以作为表达式中的一个操作数;在基于图形中可以作为表达式中的一个操作数;在基于图形的程序设计语言(如的程序设计语言(如FBD)中以图形的方式调用。中以图形的方式调用。在声明一个在声明一个Function后,需要指定该后,需要指定该Function所所返回的数值的数
9、据类型。返回的数值的数据类型。Function的的名字为该名字为该Function的的输出变量结果。输出变量结果。Function不具有内部条件,当用相同的参数多不具有内部条件,当用相同的参数多次调用某一次调用某一Function时,该时,该Function总是返回相总是返回相同的数据。同的数据。变量声明部分:变量声明部分:FUNCTIONFct:INTVAR_INPUTPAR1:INT;PAR2:INT;PAR3:INT;END_VAR程序指令部分:程序指令部分:LDPAR1MULPAR2DIVPAR3STFctINT:function返回的返回的数据类型数据类型Fct:Function名名
10、声明输入变量声明输入变量Fct=(PAR1*PAR2/PAR3)函数的调用函数的调用第二讲第二讲TwinCAT PLC中中的的POU在在IL中调用:中调用:LD7FCT2,4STResult在在FBD中调用:中调用:FctPAR3PAR2PAR1724Result在在ST中调用:中调用:Result:=Fct(7,2,4);2、功能块(、功能块(FunctionBlock)第二讲第二讲TwinCAT PLC中中的的POU功能块作为一类功能块作为一类POU,包含一部分程序,这部分程序包含一部分程序,这部分程序可以在主程序中被多次调用,可以在主程序中被多次调用,功能块在被调用时输出一功能块在被调用
11、时输出一个或多个数据。与个或多个数据。与Function不同,功能块没有返回值。不同,功能块没有返回值。功能块以调用其实例(功能块以调用其实例(Instance)的方式执行。功能块的方式执行。功能块的实例需在的实例需在POU的变量声明部分进行声明。实例可以声的变量声明部分进行声明。实例可以声明为局部实例或全局实例。明为局部实例或全局实例。功能块的实例可以在程序或其他功能块的变量声明部功能块的实例可以在程序或其他功能块的变量声明部分声明,不允许在函数的变量声明部分声明。(函数不分声明,不允许在函数的变量声明部分声明。(函数不允许调用功能块)允许调用功能块)功能块实例的输入输出变量可以在功能块实例
12、的输入输出变量可以在POU中设置,内部中设置,内部变量在调用时对于用户是不可见的。变量在调用时对于用户是不可见的。功能块的所有变量的数据在被调用后保留直至下一次功能块的所有变量的数据在被调用后保留直至下一次调用;以同样的参数多次调用功能块,功能块不一定会调用;以同样的参数多次调用功能块,功能块不一定会输出相同的数据。输出相同的数据。变量声明部分:变量声明部分:FUNCTION_BLOCKFUBVAR_INPUTPAR1:INT;PAR2:INT;END_VARVAR_OUTPUTMULERG:INT;VERGL:BOOL;END_VAR程序指令部分:程序指令部分:LDPAR1MULPAR2ST
13、MULERGLDPAR1EQPAR2STVERGL声明输入变量声明输入变量声明输出变量声明输出变量MULERG=PAR1*PAR2PAR1=PAR2VERGL=TRUEPAR1PAR2VERGL=FALSE功能功能块的调用块的调用(程序调用功能块(程序调用功能块或功能块相互调用)或功能块相互调用)第二讲第二讲TwinCAT PLC中中的的POU程序声明部分:程序声明部分:PROGRAMAWLVARQUAD:BOOL;INSTANZ:FUB;(*声明功能块的实例声明功能块的实例*)ERG:INT:=0;(*声明变量并赋初值声明变量并赋初值*)END_VAR在在IL中调用:中调用:CALINSTA
14、NZ(PAR1:=5,PAR2:=5)LDSTQUADLDSTERG在在ST中调用:中调用:INSTANZ(PAR1:=5,PAR2:=5);QUAD:=INSTANZ.VERGL;ERG:=INSTANZ.MULERG;在在FBD中调用:中调用:FUBINSTANZPAR1PAR2MULERGVERGL55QUADERG3、程序(、程序(Program)与)与PLC_PRG第二讲第二讲TwinCAT PLC中中的的POU程序作为一类程序作为一类POU,在执行过程中输出一系列数据。在执行过程中输出一系列数据。在一个项目中,程序属于全局元素。在一个项目中,程序属于全局元素。程序可以被调用,但不能
15、在函数中调用程序。与功能程序可以被调用,但不能在函数中调用程序。与功能块不同,程序的调用不通过实例。块不同,程序的调用不通过实例。程序中所有变量的数据在被调用执行后保留直至下一程序中所有变量的数据在被调用执行后保留直至下一次执行。与功能块不同,调用功能块只是改变该功能块次执行。与功能块不同,调用功能块只是改变该功能块一个实例中的变量的数据。一个实例中的变量的数据。MAIN是项目中系统预定义的一个特殊的程序。是项目中系统预定义的一个特殊的程序。MAIN每一循环周期被系统调用执行一次,相当于一个每一循环周期被系统调用执行一次,相当于一个单任务程序的主程序。单任务程序的主程序。MAIN在用户建立一个
16、新项目时由系统自动加载。在用户建立一个新项目时由系统自动加载。当用户在项目中进行了多任务管理的相关设置后,系当用户在项目中进行了多任务管理的相关设置后,系统可以不需要统可以不需要MAIN。否则,用户不要删除否则,用户不要删除MAIN或改或改变其程序名。变其程序名。变量声明部分:变量声明部分:PROGRAMPRGExampleVAR_OUTPUTPAR:INT;END_VAR程序指令部分:程序指令部分:LDPARADD1STPAR程序的调用程序的调用第二讲第二讲TwinCAT PLC中中的的POU在在IL中调用:中调用:CALPRGExampleLDSTERG在在ST中调用:中调用:PRGEam
17、ple;ERG:=PRGEample.PAR;在在FBD中调用:中调用:PRGEampleERGPAR第三讲第三讲TwinCAT PLC数据类型数据类型布尔型布尔型BOOL:真真(TRUE)与与假(假(FALSE),),占用占用1位(位(Bit)地址空间地址空间整型整型类型类型下限下限上限上限占用地址空间占用地址空间BYTE02558BitWORD06553516BitDWORD0429496729532BitSINT-1281278BitUSINT02558BitINT-327683276716BitUINT06553516BitDINT-2147483648214748364732BitU
18、DINT0429496729532Bit实型实型第三讲第三讲TwinCAT PLC数据类型数据类型字符字符串串型型STRING:字符型数据的宽度在变量声明时指定,若没有指定,系统默认宽度为字符型数据的宽度在变量声明时指定,若没有指定,系统默认宽度为80个字符。每个字符占一个字符。每个字符占一个字节(个字节(8Bit)的地址空间。的地址空间。举例:举例:str:STRING(35)=ThisisaString;又称浮点型。又称浮点型。REAL:占占32Bit地址空间地址空间日期日期/时间时间第三讲第三讲TwinCAT PLC数据类型数据类型类型类型DATE从从1970-01-01开始以秒计算,占
19、开始以秒计算,占32Bit地址空间地址空间举例举例低低16Bit,高,高16BitD#1970-01-0116#0000,16#0000D#1970-01-0216#5180,16#0001D#1999-04-2816#4F80,16#3726D#2000-01-0116#4380,16#386DDATE_AND_TIME或或DT从从1970-01-0100时时00分分00秒开始以秒计算,占秒开始以秒计算,占32Bit地址空间地址空间举例举例低低16Bit,高,高16BitDT#1970-01-01-00:00:0016#0000,16#0000DT#1970-01-01-00:00:0116
20、#0001,16#0000DT#1999-04-29-11:59:0016#4984,16#3728DT#2000-01-01-00:00:0116#4381,16#386D日期日期/时间时间第三讲第三讲TwinCAT PLC数据类型数据类型类型类型TIME以毫秒计算,占以毫秒计算,占32Bit地址空间地址空间举例举例低低16Bit,高,高16BitT#10s0ms16#2710,16#0000T#1440m0s0ms或或T#1d16#5C00,16#0526T#60m0s0ms16#EE80,16#0036T#8052m18s3ms或或T#5d14h12m18s3ms16#19D3,16#1
21、CCCTIME_OF_DAY或或TOD从从00时时00分分00秒开始以毫秒计算,占秒开始以毫秒计算,占32Bit地址空间地址空间举例举例低低16Bit,高,高16BitTOD#15:36:10.34016#1764,16#0359TOD#11:3816#09C0,16#09C0TOD#00:0016#0000,16#0000TOD#00:00:00.10016#0064,16#0000数组数组第三讲第三讲TwinCAT PLC数据类型数据类型TwinCAT PLC支持支持1维、维、2维、维、3维数组,数组声明语法如下:维数组,数组声明语法如下::ARRAY.,.,.OF;举例:举例:arr1:
22、ARRAY1.5OFINT:=1,2,3,4,5;arr2:ARRAY1.2,3.4OFINT:=1,3(7);(*1,7,7,7*)arr3:ARRAY1.2,2.3,2.4OFINT:=2(0),4(4),2,3;(*0,0,4,4,4,4,2,3*)数组元素的引用:数组元素的引用:index1,index2,index3举例:举例:Arr21,3第四讲第四讲TwinCAT PLC变量声明与硬件寻址变量声明与硬件寻址1、变量的声明变量的声明语法:语法:AT:=;内的部分为可选项内的部分为可选项“Identifier”:变量名:变量名“Address”:变量的地址(:变量的地址(I、Q、M)
23、“Type”:变量数据类型:变量数据类型“Initialization”:变量的初始值:变量的初始值注意:注意:变量名不允许包含空格与特殊字符,不能与关键字相同;变量名不区分大小写,允许包含至变量名不允许包含空格与特殊字符,不能与关键字相同;变量名不区分大小写,允许包含至多一个下划线;变量名最大为多一个下划线;变量名最大为32个字符。个字符。在声明过程中可以为变量赋初值,如果省略,系统默认初始值为在声明过程中可以为变量赋初值,如果省略,系统默认初始值为“0”。使用使用“AT”关键字可以将变量连接到硬件地址。连接到硬件地址的变量只能是关键字可以将变量连接到硬件地址。连接到硬件地址的变量只能是PO
24、U的局部变的局部变量或全局变量,而不允许是量或全局变量,而不允许是POU的输入,输出变量。的输入,输出变量。2、POU变量声明变量声明 TwinCAT PLC的的POU包括声明部分,包括声明部分, POU程序中使用的变量与常量需程序中使用的变量与常量需要在该部分进行声明(全局变量除外),包括:要在该部分进行声明(全局变量除外),包括:输入变量输入变量(InputVariable)输出变量输出变量(OutputVariable)输入输入/输出变量输出变量(Input/OutputVariable)局部变量局部变量(LocalVariable)保持变量保持变量(RetainVariable)第四讲
25、第四讲TwinCAT PLC变量声明与硬件寻址变量声明与硬件寻址2、POU变量声明变量声明第四讲第四讲TwinCAT PLC变量声明与硬件寻址变量声明与硬件寻址输入变量:在关键字输入变量:在关键字“VAR_INPUT”与与“END_VAR”之间声明,声明的变量作为之间声明,声明的变量作为POU的输入变量。的输入变量。调用调用POU时可以为输入变量赋值。时可以为输入变量赋值。举例:举例:VAR_INPUTin1:INT;END_VAR输出变量:在关键字输出变量:在关键字“VAR_OUTPUT”与与“END_VAR”之间声明,声明的变量作为之间声明,声明的变量作为POU的输出变的输出变量。量。PO
26、U被调用时输出一个或多个数据。被调用时输出一个或多个数据。举例:举例:VAR_OUTPUTout1:INT;END_VAR2、POU变量声明变量声明第四讲第四讲TwinCAT PLC变量声明与硬件寻址变量声明与硬件寻址输入输入/输出变量:在关键字输出变量:在关键字“VAR_IN_OUT”与与“END_VAR”之间声明,声明的变量作为之间声明,声明的变量作为POU的输的输入入/输出变量。变量的输入值不能为常量。输出变量。变量的输入值不能为常量。举例:举例:VAR_IN_OUTinout1:INT;END_VAR局部变量:在关键字局部变量:在关键字“VAR”与与“END_VAR”之间声明,声明的变
27、量作为之间声明,声明的变量作为POU的局部变量。外部的局部变量。外部程序不能操作程序不能操作POU的局部变量。的局部变量。举例:举例:VARloc1:INT;END_VAR2、POU变量声明变量声明第四讲第四讲TwinCAT PLC变量声明与硬件寻址变量声明与硬件寻址保持变量:在关键字保持变量:在关键字“VAR_RETAIN”与与“END_VAR”之间声明。系统保存变量的数据,如果系统之间声明。系统保存变量的数据,如果系统断电,数据也不会丢失。当系统上电,程序运行时,系统根据被保存的数据的状态运行程序。断电,数据也不会丢失。当系统上电,程序运行时,系统根据被保存的数据的状态运行程序。举例:举例
28、:VAR_RETAINrem1:INT;END_VAR3、全局、全局变量声明变量声明声明方式与在声明方式与在POU中声明相同,请详见中声明相同,请详见“第八讲第八讲TwinCAT PLC程序资源程序资源”的的“全局变量全局变量”部分。部分。4、POU常量声明常量声明第四讲第四讲TwinCAT PLC变量声明与硬件寻址变量声明与硬件寻址在在POU声明部分的关键字声明部分的关键字“VAR_CONSTANT”与与“END_VAR”之间声明。之间声明。语法:语法::=;“Identifier”:常量名:常量名“Type”:常量类型:常量类型“Initialization”:常量的值:常量的值举例:举例
29、:VAR_CONSTANTcon1:INT:=12;END_VAR5、全局、全局常量声明常量声明第四讲第四讲TwinCAT PLC变量声明与硬件寻址变量声明与硬件寻址声明方式与在声明方式与在POU中声明相同中声明相同6、程序注释、程序注释在在POU的声明部分与程序部分可以为程序添加注释文本的声明部分与程序部分可以为程序添加注释文本在在POU的声明部分,的声明部分,IL与与ST语言程序部分的每一行后添加程序注释,格式为语言程序部分的每一行后添加程序注释,格式为(*注释文本注释文本*)举例:举例:VARINSTANZ:FUB;(*声明声明FUB功能块的实例功能块的实例INSTANZ*)END_VA
30、R在在FBD与与LD语言程序部分中,通过使用语言程序部分中,通过使用“Insert”下拉菜单中的下拉菜单中的“Comment”命令添加注释;命令添加注释;在在SFC语言程序部分中,通过语言程序部分中,通过“StepAttributes”添加注释。添加注释。7、PFC硬件寻址硬件寻址第四讲第四讲TwinCAT PLC变量声明与硬件寻址变量声明与硬件寻址说明说明可可编编程程总总线线适适配配器器(PFC)的的过过程程映映像像分分为为输输入入、输输出出量量部部分分;在在TwinCAT PLC中中,分分别别以以“%I”与与“%Q”表表示示。在在TwinCAT PLC中中,I/O模模块块的的地地址址排排列
31、列遵遵循循“模模拟拟量量地地址址在在前前,数数字字量量地地址址在在后后”的的规规律律,即即无无论论PFC节节点点中中的的I/O模模块块的的物物理排列顺序如何,模拟量模块的地址在前,数字量模块的地址在后。理排列顺序如何,模拟量模块的地址在前,数字量模块的地址在后。在在TwinCAT PLC中中,地地址址的的排排列列以以“字字”(16位位)为为单单位位。在在“%I”地地址址区区中中,从从%IW0开开始始,先先为为模模拟拟量量输输入入地地址址,后后为为数数字字量量输输入入地地址址;在在“%Q”地地址址区区中中,从从%QW0开开始始,先先为为模模拟拟量量输输出出地地址址,后后为为数数字字量量输输出出地
32、地址址。在在模模拟拟量量地地址址中中,I/O地地址址根根据据模模拟拟量量模模块块的的物物理理安安装装顺顺序序排排列列;在在数数字字量量地地址址中中,I/O地地址址根根据据数数字字量量模模块块的的物理安装顺序排列。物理安装顺序排列。此外,此外,PFC的内部存储器以的内部存储器以“%M”表示,内部存储器地址的排列以表示,内部存储器地址的排列以“字字”(16位)位)为单位,从为单位,从%MW0开始排列。开始排列。在在POU中,可以使用硬件地址如中,可以使用硬件地址如“%IW0”,“%QW1.0”编程也可以使用变量编程。编程也可以使用变量编程。若使用变量编程,需要在若使用变量编程,需要在POU变量声明
33、部分进行变量的声明。变量声明部分进行变量的声明。7、PFC硬件寻址硬件寻址第四讲第四讲TwinCAT PLC变量声明与硬件寻址变量声明与硬件寻址在在TwinCAT PLC中,硬件地址由中,硬件地址由“%”、地址范围、地址长度与数字组成。、地址范围、地址长度与数字组成。地址范围:地址范围:地址长度:地址长度:IInputXSingleBitQOutputNoneSingleBitMMemorylocationBByte(8Bit)WWord(16Bit)DDoubleword(32Bit)举例:举例:%:%IW215:%QB7:%MD48:输入地址第输入地址第2字第字第0位位输入地址第输入地址第
34、215字字输出地址第输出地址第7字节字节内存地址第内存地址第48双字双字7、PFC硬件寻址硬件寻址第四讲第四讲TwinCAT PLC变量声明与硬件寻址变量声明与硬件寻址PFC地址分布:地址分布:地址长度地址长度地址地址Bit0.00.70.70.151.01.71.81.15254.0254.7254.8254.15255.0255.7255.8255.15Byte0123508509510511Word01254255DWord0127注意:注意:I/O模块的地址排列遵循模块的地址排列遵循“模拟量地址在前,数字量地址在后模拟量地址在前,数字量地址在后”的规律,即无论的规律,即无论PFC节点中
35、的节点中的I/O模块的物理排列顺序如何,模拟量模块的地址在前,数字量模块的地址在后。模块的物理排列顺序如何,模拟量模块的地址在前,数字量模块的地址在后。位位以字的宽度存储,访问某一位可以使用以字的宽度存储,访问某一位可以使用“%MX”的方式,即内存地址第的方式,即内存地址第5字第字第0位。位。第五讲第五讲TwinCAT PLCPOU程序设计语言程序设计语言1、指令指令表布尔助记符程序设计语言(表布尔助记符程序设计语言(IL)布尔助记符程序设计语言是用布布尔助记符程序设计语言是用布尔助记符来描述程序的一种程序设计尔助记符来描述程序的一种程序设计语言。布尔助记符程序设计语言与计语言。布尔助记符程序
36、设计语言与计算机中的汇编语言非常相似,采用布算机中的汇编语言非常相似,采用布尔助记符来表示操作功能。尔助记符来表示操作功能。IL语言程序由一系列指令构成,语言程序由一系列指令构成,每一条指令包括一个操作符与一个或每一条指令包括一个操作符与一个或多个操作数。多个操作数。在程序的每一行起始出可以设置在程序的每一行起始出可以设置标签(标签(Label),在每行指令后可以),在每行指令后可以添加注释文本(添加注释文本(Comment)。)。1、指令指令表布尔助记符程序设计语言(表布尔助记符程序设计语言(IL)第五讲第五讲TwinCAT PLCPOU程序设计语言程序设计语言修饰符:修饰符:C:用于用于J
37、MP、CAL、RET语句,如果该指令前的表达式结果为语句,如果该指令前的表达式结果为“真真”,则执行该指令。,则执行该指令。N:用于用于JMP、CAL、RET语句,如果该指令前的表达式结果为语句,如果该指令前的表达式结果为“假假”,则执行该指令。,则执行该指令。N:在其他语句中用于操作数(布尔量)取反。在其他语句中用于操作数(布尔量)取反。用户使用用户使用“Insert”下拉菜单中的相关命令可以在指令中插入操作符、操作数、函数与功能块。下拉菜单中的相关命令可以在指令中插入操作符、操作数、函数与功能块。IL操作符操作符:操作符操作符可用修饰符:可用修饰符:注释:注释:LDN将操作数结果写入缓存将
38、操作数结果写入缓存STN将运算结果写入操作数将运算结果写入操作数S置位布尔操作数置位布尔操作数R复位布尔操作数复位布尔操作数1、指令指令表布尔助记符程序设计语言(表布尔助记符程序设计语言(IL)操作符操作符可用修饰符:可用修饰符:注释:注释:ANDN位逻辑位逻辑“与与”运算运算ORN位逻辑位逻辑“或或”运算运算XORN位逻辑位逻辑“异或异或”运算运算ADD“加加”运算运算SUB“减减”运算运算MUL“乘乘”运算运算DIV“除除”运算运算GT大于大于GE大于等于大于等于EQ等于等于NE不等于不等于LE小于等于小于等于第五讲第五讲TwinCAT PLCPOU程序设计语言程序设计语言1、指令指令表布
39、尔助记符程序设计语言(表布尔助记符程序设计语言(IL)第五讲第五讲TwinCAT PLCPOU程序设计语言程序设计语言操作符操作符可用修饰符:可用修饰符:注释:注释:LT小于小于JMPC,N跳转到跳转到“Label”CALC,N调用程序或功能块调用程序或功能块RETC,N返回返回举例:举例:操作符:操作符:LDANDNJMPCLDNSTmark:LDST操作数:操作数:TRUEBOOL1markBOOL2ERGBOOL2ERG注释:注释:(*将将“TRUE”存入缓存存入缓存*)(*取取“BOOL1”反,与反,与“TRUE”做与运算做与运算*)(*如果结果为如果结果为“True”,跳转到,跳转到
40、“mark”*)(*取取“BOOL2”反反存入变量存入变量“ERG”中中*)(*取取“BOOL2”存入变量存入变量“ERG”中中*)2、梯形逻辑程序设计语言(、梯形逻辑程序设计语言(LD)第五讲第五讲TwinCAT PLCPOU程序设计语言程序设计语言梯形逻辑程序设计语言是用梯形图的梯形逻辑程序设计语言是用梯形图的图形符号来描述程序的一种程序设计语言。图形符号来描述程序的一种程序设计语言。这种程序设计语言采用因果关系来描述事这种程序设计语言采用因果关系来描述事件发生的条件和结果。每个梯级网络是一件发生的条件和结果。每个梯级网络是一个因果关系。在梯级网络中,描述事件发个因果关系。在梯级网络中,描
41、述事件发生的条件表示在左面,事件发生的结果表生的条件表示在左面,事件发生的结果表示在后面。示在后面。梯形图由一系列的梯级网络构成,每梯形图由一系列的梯级网络构成,每一个梯级网络包含触点、输出线圈、功能一个梯级网络包含触点、输出线圈、功能块等元素。块等元素。2、梯形逻辑程序设计语言(、梯形逻辑程序设计语言(LD)第五讲第五讲TwinCAT PLCPOU程序设计语言程序设计语言元素:元素:标识:标识:注释:注释:常开触点常开触点|如果指定地址信号状态为如果指定地址信号状态为“1”,则触点闭合,反之触点断开。,则触点闭合,反之触点断开。常闭触点常闭触点|/|如果指定地址信号状态为如果指定地址信号状态
42、为“1”,则触点断开,反之触点闭合。,则触点断开,反之触点闭合。输出线圈输出线圈()线圈前运算结果为线圈前运算结果为“1”,输出状态为,输出状态为“1”,反之输出状态为,反之输出状态为“0”。置位输出线圈置位输出线圈(S)线圈前运算结果为线圈前运算结果为“1”,输出状态为,输出状态为“1”,反之信号状态不,反之信号状态不变。变。复位输出线圈复位输出线圈(R)线圈前运算结果为线圈前运算结果为“1”,输出状态为,输出状态为“0”,反之信号状态不,反之信号状态不变。变。串联结构:相当于位逻辑的串联结构:相当于位逻辑的“与与”运算。运算。并联结构:相当于位逻辑的并联结构:相当于位逻辑的“或或”运算。运
43、算。输出线圈不允许串联结构输出线圈不允许串联结构2、梯形逻辑程序设计语言(、梯形逻辑程序设计语言(LD)第五讲第五讲TwinCAT PLCPOU程序设计语言程序设计语言在梯形逻辑程序设计语言中允许以图形的方式使用系统运算符与在梯形逻辑程序设计语言中允许以图形的方式使用系统运算符与POU,运算符与,运算符与POU可以在可以在梯级网络中间使用(如图梯级网络中间使用(如图1),也可以在梯级网络右侧以),也可以在梯级网络右侧以“使能使能”的方式使用(如图的方式使用(如图2)。)。图图1注:在此种方式下,要求运算符或注:在此种方式下,要求运算符或POU所连接的变量为布尔型。所连接的变量为布尔型。图图2注
44、:注:“EN”为该运算符或为该运算符或POU的使能端,如果前面运算结果为的使能端,如果前面运算结果为“1”,则使能端激活,程序执行;反之程序不执行。,则使能端激活,程序执行;反之程序不执行。2、梯形逻辑程序设计语言(、梯形逻辑程序设计语言(LD)第五讲第五讲TwinCAT PLCPOU程序设计语言程序设计语言用户使用用户使用“Insert”下拉菜单中的相关命令可以在梯级网络中插入运算符、下拉菜单中的相关命令可以在梯级网络中插入运算符、POU、触点、线、触点、线圈和程序注释等,使用圈和程序注释等,使用“Extras”下拉菜单中的相关命令可以设置常开下拉菜单中的相关命令可以设置常开/常闭触点,置位
45、常闭触点,置位/复位线圈。复位线圈。用户可以使用工具栏在梯级网络插入触点、线圈及串联用户可以使用工具栏在梯级网络插入触点、线圈及串联/并联结构。并联结构。插入串联触点插入串联触点插入并联触点插入并联触点插入输出线圈插入输出线圈常开触点常开触点/常闭触点切换常闭触点切换插入置位线圈插入置位线圈/复位线圈复位线圈3、功能块程序设计语言(、功能块程序设计语言(FBD)第五讲第五讲TwinCAT PLCPOU程序设计语言程序设计语言功能模块图程序设计语言是采用功能功能模块图程序设计语言是采用功能模块来表示模块所具有的功能,不同的功模块来表示模块所具有的功能,不同的功能模块有不同的功能。它有若干个输入端
46、能模块有不同的功能。它有若干个输入端和输出端,通过软连接的方式,分别连接和输出端,通过软连接的方式,分别连接到所需的其它端子,完成所需的运算或控到所需的其它端子,完成所需的运算或控制功能。制功能。FBD包含一系列程序网络,每个网络包含一系列程序网络,每个网络以图形的方式表示逻辑或数学运算,以图形的方式表示逻辑或数学运算,POU的调用。的调用。3、功能块程序设计语言(、功能块程序设计语言(FBD)第五讲第五讲TwinCAT PLCPOU程序设计语言程序设计语言使用使用FBD工具栏:工具栏:对当前运算符添加输入端对当前运算符添加输入端对当前运算符或对当前运算符或POU的赋值输出端添加另一个赋值输出
47、端,同一运算结果可以输出至两个变量的赋值输出端添加另一个赋值输出端,同一运算结果可以输出至两个变量插入运算符插入运算符插入赋值指令(插入赋值指令(Assign),),用于为运算符或用于为运算符或POU的的输入输入/输出变量或其他变量赋值。输出变量或其他变量赋值。插入跳转指令(插入跳转指令(Jump)插入返回指令(插入返回指令(Return)插入函数调用插入函数调用插入功能块或程序调用插入功能块或程序调用运算符或运算符或POU的输入的输入/输出变量或其他变量(布尔型)取反输出变量或其他变量(布尔型)取反变量置位变量置位/复位复位3、功能块程序设计语言(、功能块程序设计语言(FBD)第五讲第五讲T
48、winCAT PLCPOU程序设计语言程序设计语言用户使用用户使用“Insert”下拉菜单中的相关命令可以在梯级网络中插入运算符、下拉菜单中的相关命令可以在梯级网络中插入运算符、POU、赋值指令、赋值指令、跳转指令、返回指令和程序注释等,使用跳转指令、返回指令和程序注释等,使用“Extras”下拉菜单中的相关命令可以设置变量取反,变下拉菜单中的相关命令可以设置变量取反,变量置位量置位/复位。复位。注意:注意:用户应用程序的开发可以在用户应用程序的开发可以在IL、LD、FBD3种程序设计语言之间相互种程序设计语言之间相互切换。切换。操作方法:选中所需切换的操作方法:选中所需切换的POU,使用,使
49、用“Project”-“Object”-“Convert”命令,在命令,在“ConvertObject”对话框中选择所需切换的程序对话框中选择所需切换的程序设计语言。设计语言。4、结构化语句程序设计语言(、结构化语句程序设计语言(ST)第五讲第五讲TwinCAT PLCPOU程序设计语言程序设计语言结构化语句描述程序设计语言是用结结构化语句描述程序设计语言是用结构化的描述语句来描述系统中各种变量之构化的描述语句来描述系统中各种变量之间的各种运算关系,完成所需的功能或操间的各种运算关系,完成所需的功能或操作的一种程序设计语言。作的一种程序设计语言。结构化语句描述程序设计语言是一种结构化语句描述程
50、序设计语言是一种类似于高级语言的程序设计语言。在大中类似于高级语言的程序设计语言。在大中型的可编程序控制器系统中,常采用结构型的可编程序控制器系统中,常采用结构化语句描述程序设计语言来描述控制系统化语句描述程序设计语言来描述控制系统中各个变量的关系。中各个变量的关系。ST与与IL同属于基于文本的程序设计语同属于基于文本的程序设计语言,但是由于言,但是由于ST采用了类似于高级语言的采用了类似于高级语言的程序结构,在开发较复杂的应用程序时更程序结构,在开发较复杂的应用程序时更为简便快捷。为简便快捷。4、结构化语句程序设计语言(、结构化语句程序设计语言(ST)第五讲第五讲TwinCAT PLCPOU
51、程序设计语言程序设计语言赋值表达式运算符优先级:赋值表达式运算符优先级:括号括号函数调用函数调用指数运算指数运算取负数取负数取反取反乘除运算乘除运算求余数求余数加减运算加减运算比较运算比较运算等于等于不等于不等于逻辑与逻辑与逻辑异或逻辑异或逻辑或逻辑或()EXPT-NOT*,/MOD+,-,=ANDXOROR优先级优先级最高最高最低最低注意:注意:优先级相同的运算符运算顺序为优先级相同的运算符运算顺序为“从左至右从左至右”。4、结构化语句程序设计语言(、结构化语句程序设计语言(ST)第五讲第五讲TwinCAT PLCPOU程序设计语言程序设计语言赋值语句:赋值语句:Var1=Var2*10;I
52、F语句:语句:IFTHEN;ELSIFTHEN;:ELSIFTHEN;ELSE;END_IFCASE语句:语句:CASEOF:;:;:;:;ELSE;END_CASE4、结构化语句程序设计语言(、结构化语句程序设计语言(ST)第五讲第五讲TwinCAT PLCPOU程序设计语言程序设计语言FOR语句:语句:FOR:=TOBYDO;END_FORWHILE语句:语句:WHILE;END_WHILEREPEAT语句:语句:REPEAT;UNTILEND_REPEATRETURN语句:语句:RETURN;EXIT语句:语句:EXIT;5、功能表图程序设计语言(、功能表图程序设计语言(SFC)第五讲第
53、五讲TwinCAT PLCPOU程序设计语言程序设计语言功能表图程序设计语言是用功能表图功能表图程序设计语言是用功能表图来描述程序的一种程序设计语言。采用功来描述程序的一种程序设计语言。采用功能表图的描述,控制系统被分为若干个子能表图的描述,控制系统被分为若干个子系统,便于程序的分工设计和检查调试。系统,便于程序的分工设计和检查调试。SFC采用较为灵活的程序结构,可节采用较为灵活的程序结构,可节省程序设计时间和调试时间,省程序设计时间和调试时间,SFC常用于常用于系统的规模校大,程序关系较复杂的场合。系统的规模校大,程序关系较复杂的场合。5、功能表图程序设计语言(、功能表图程序设计语言(SFC
54、)第五讲第五讲TwinCAT PLCPOU程序设计语言程序设计语言在在SFC程序设计语言中,程序由一系列的步骤(程序设计语言中,程序由一系列的步骤(Step)组成,程序进程的执行取决于)组成,程序进程的执行取决于Step之间的执行条之间的执行条件(件(Transition)。)。Step由行为(由行为(Action)与标识()与标识(Flag)组成,其中)组成,其中Action是一段由是一段由IL、LD、FBD、ST或或SFC编写的程编写的程序序;Flag用于显示该用于显示该Step是否被激活的一个系统内部变量。是否被激活的一个系统内部变量。EntryAction:在在Step被激活之前执行一
55、次的程序。被激活之前执行一次的程序。ExitAction:在在Step结束之前执行一次的程序。结束之前执行一次的程序。执行条件执行条件Transition是一个布尔量数据类型的变量、地址、常数或具有布尔量数据类型结果的表达式。是一个布尔量数据类型的变量、地址、常数或具有布尔量数据类型结果的表达式。StepTransitionActionFlagEntryActionExitActionSFC程序5、功能表图程序设计语言(、功能表图程序设计语言(SFC)第五讲第五讲TwinCAT PLCPOU程序设计语言程序设计语言使用使用SFC工具栏:工具栏:在在之前插入之前插入Step在在之后插入之后插入S
56、tep在在右边插入程序进程选择分支右边插入程序进程选择分支在在左边插入程序进程选择分支左边插入程序进程选择分支在在右边插入程序进程并联分支右边插入程序进程并联分支在在左边插入程序进程并联分支左边插入程序进程并联分支插入跳转指令插入跳转指令插入插入Transition与跳转指令与跳转指令用户使用用户使用“Insert”下拉菜单中下拉菜单中的相关命令可以在程序中插入的相关命令可以在程序中插入EntryAction与与ExitAction用户使用用户使用“Extras”下拉菜单中下拉菜单中“ZoomAction/Transition”可以对程可以对程序中的序中的Action或或Transition进
57、行编辑。进行编辑。连续功能图程序设计语言(连续功能图程序设计语言(CFC)第五讲第五讲TwinCAT PLCPOU程序设计语言程序设计语言CFC是基于图形的程序设计语言,与是基于图形的程序设计语言,与FBD类似,类似,CFC采用功能模块来表示模块采用功能模块来表示模块所具有的功能,不同的功能模块有不同的所具有的功能,不同的功能模块有不同的功能。它有若干个输入端和输出端,通过功能。它有若干个输入端和输出端,通过软连接的方式,分别连接到所需的其它端软连接的方式,分别连接到所需的其它端子,完成所需的运算或控制功能。子,完成所需的运算或控制功能。在在CFC程序设计语言中,所有的程序程序设计语言中,所有
58、的程序元素(包括输入、输出、元素(包括输入、输出、POU、跳转指令、跳转指令、程序注释等)没有位置要求。放置程序元程序注释等)没有位置要求。放置程序元素后,用户用鼠标将各个元素连接起来,素后,用户用鼠标将各个元素连接起来,构成程序的执行进程。在连接后移动程序构成程序的执行进程。在连接后移动程序元素,连接线自适应程序元素的位置。元素,连接线自适应程序元素的位置。6、连续功能图程序设计语言、连续功能图程序设计语言(CFC)第五讲第五讲TwinCAT PLCPOU程序设计语言程序设计语言使用使用CFC工具栏:工具栏:插入输入元素插入输入元素插入输出元素插入输出元素插入运算符或插入运算符或POU插入跳
59、转指令插入跳转指令插入插入标签(标签(Label)插入返回指令插入返回指令插入程序注释插入程序注释运算符或运算符或POU的输入的输入/输出变量或其他变量(布尔型)取反输出变量或其他变量(布尔型)取反变量置位变量置位/复位复位为运算符或为运算符或POU添加使能输入端(添加使能输入端(EN)与使能输出端(与使能输出端(ENO)注意:注意:插入运算符或插入运算符或POU时,系时,系统默认为统默认为“AND”运算符,用户运算符,用户可更改为所需的运算符或可更改为所需的运算符或POU。当运算符或当运算符或POU的的EN端为端为“0”,则该运算符或则该运算符或POU的程的程序不执行,序不执行,ENO端为端
60、为“0”。当运算符或当运算符或POU的的EN端为端为“1”,该运算符或该运算符或POU的程序的程序执行,执行无误,执行,执行无误,ENO端为端为“1”;执行有误,执行有误,ENO端为端为“0”。第六讲第六讲TwinCAT PLC运算符运算符WAGO-I/O-PRO 32支持所有支持所有IEC标准的运算符,运算符无须在项目中声明。标准的运算符,运算符无须在项目中声明。应用:应用:运算符:运算符:数学运算数学运算加、减、乘、除、余数、三角函数、绝对值、指数、对数加、减、乘、除、余数、三角函数、绝对值、指数、对数位逻辑运算位逻辑运算与、或、非、异或与、或、非、异或移位移位/循环循环左移位、右移位、左
61、循环、右循环左移位、右移位、左循环、右循环比较比较大于、大于等于、小于、小于等于、等于、不等于大于、大于等于、小于、小于等于、等于、不等于其它其它调用、数据类型转换、取地址调用、数据类型转换、取地址注意:注意:当用户在当用户在LD或或FBD中使用运算符时,系统默认插入中使用运算符时,系统默认插入“AND”(加法运算符),用户可以根据需要输入(加法运算符),用户可以根据需要输入所需的运算符。所需的运算符。使用运算符时需注意运算符应用的数据类型应该与变量的数据类型一致。使用运算符时需注意运算符应用的数据类型应该与变量的数据类型一致。第七讲第七讲TwinCAT PLC函数库函数库1、函数库的管理、函
62、数库的管理用户新建一个项目后,系统自动加用户新建一个项目后,系统自动加载库载库“STANDARD.LIB”,用户可以通,用户可以通过使用过使用“Insert”-“AdditionalLibrary”加载其它库;使用加载其它库;使用“Edit”-“Delete”从当前项目中删除库。从当前项目中删除库。函数库文件的默认路径为:函数库文件的默认路径为:?WAGO-I/O-PRO32LIB2用户使用用户使用“Window”下拉菜单中的下拉菜单中的“LibraryManager”命令可以打开命令可以打开“LibraryManager”窗口。窗口。函数库由一系列函数与功能块构成,可以在整个项目中调用。函数
63、库由一系列函数与功能块构成,可以在整个项目中调用。2、STANDARD.LIB库元素库元素第七讲第七讲TwinCAT PLC函数库函数库应用:应用:函数函数/功能块:功能块:触发功能块触发功能块上升沿触发、下降沿触发上升沿触发、下降沿触发定时器功能块定时器功能块延时接通定时器、延时断开定时器、延时脉冲定时器延时接通定时器、延时断开定时器、延时脉冲定时器计数器功能块计数器功能块增增1计数器、减计数器、减1计数器、增计数器、增1减减1计数器计数器字符串处理函数字符串处理函数插入、删除、替换、连接、取字符插入、删除、替换、连接、取字符双稳态功能块双稳态功能块SR、RS注意:注意:同使用运算符一样,请
64、注意库中函数或功能块对变量数据类型的要求。同使用运算符一样,请注意库中函数或功能块对变量数据类型的要求。2、UTIL.LIB库元素库元素第七讲第七讲TwinCAT PLC函数库函数库应用:应用:函数函数/功能块:功能块:BCD转换转换INTtoBCD、BCDtoINT位位/字节处理函数字节处理函数8bitstoByte、Byteto8bits、取双字中的某、取双字中的某1位、给双字的某位、给双字的某1位赋值位赋值数学运算数学运算积分、导数、统计积分、导数、统计信号发生器信号发生器三角波、锯齿波、方波、正弦波、余弦波三角波、锯齿波、方波、正弦波、余弦波模拟量处理模拟量处理滞后处理、高低限报警滞后
65、处理、高低限报警第八讲第八讲TwinCAT PLC程序资源程序资源 TwinCAT PLC程序资源包括如下几项:程序资源包括如下几项:全局变量全局变量(GlobalVariables)PLC配置配置(PLCConfiguration)任务配置任务配置(TaskConfiguration)采样轨迹采样轨迹(SamplingTrace)查看与配方管理器查看与配方管理器(WatchandReceiptManager)1、全局变量(全局变量(GlobalVariables)第八讲第八讲TwinCAT PLC程序资源程序资源在在POU变量声明部分所声明的变量或功能块实例只能在自身的程序中被访问,而在全局
66、变量中声明变量声明部分所声明的变量或功能块实例只能在自身的程序中被访问,而在全局变量中声明的元素的元素可以被项目中所有的可以被项目中所有的POU访问访问。变量的声明方式与在变量的声明方式与在POU中声明相同中声明相同举例:举例:基本型:基本型:VAR_GLOBALPAR1:INT;PAR2:INT;PAR3:INT;END_VAR保持型:保持型:VAR_GLOBALRETAINPAR1:INT;PAR2:INT;PAR3:INT;END_VARRETAIN:系统保存变量的数据,如果系统断电,数据也不会丢失。当系统上电,程序运行时,系统根据:系统保存变量的数据,如果系统断电,数据也不会丢失。当系
67、统上电,程序运行时,系统根据被保存的数据的状态运行程序。被保存的数据的状态运行程序。常量:常量:VAR_GLOBALCONSTANTcon1:INT:=12;END_VAR变量配置(变量配置(VariableConfiguration)第八讲第八讲TwinCAT PLC程序资源程序资源在功能块的声明部分可以对变量的地址进行不完整的配置,不完整部分用在功能块的声明部分可以对变量的地址进行不完整的配置,不完整部分用“*”表示。如果在程序中表示。如果在程序中调用了该功能块的实例,则可以在调用了该功能块的实例,则可以在“VariableConfiguration”中对于该实例的变量配置地址。中对于该实
68、例的变量配置地址。注意:注意:进行变量配置时保证进行变量配置时保证“程序程序.实例实例.变量变量”的路径正确。的路径正确。在功能块声明部分与变量配置部分,变量的地址类型(输入在功能块声明部分与变量配置部分,变量的地址类型(输入/输出)与数据类型相符。输出)与数据类型相符。举例:举例:功能块声明部分:功能块声明部分:FUNCTION_BLOCKlocioVARlociAT%I*:BOOL;locoAT%Q*:BOOL;END_VAR程序声明部分:程序声明部分:PROGRAMPLC_PRGVARHugo:logio;END_VAR变量配置部分:变量配置部分:VAR_CONFIGPLC_PRG.Hu
69、go.lociAT:BOOL;PLC_PRG.Hugo.locoAT:BOOL;END_VAR2、PLC配置(配置(PLCConfiguration)第八讲第八讲TwinCAT PLC程序资源程序资源从从下图所示下图所示“CouplerSelection”对话框的产品目录中选择所使用的对话框的产品目录中选择所使用的PFC,当用户使用,当用户使用“Online”下下拉菜单中的拉菜单中的Login命令,系统将用户程序下载到所选的命令,系统将用户程序下载到所选的PFC中。中。3、任务配置(、任务配置(TaskConfiguration)第八讲第八讲TwinCAT PLC程序资源程序资源在多任务系统中
70、,任务管理用于控制系统的程序执行过程。在任务管理中一个任务的执行取决于其在多任务系统中,任务管理用于控制系统的程序执行过程。在任务管理中一个任务的执行取决于其优先级与执行条件。优先级与执行条件。优先级(优先级(Priority):):031,“0“最高,最高,”31”最低。最低。执行条件(执行条件(Requirement):):分为周期执行与触发执行两种执行条件。分为周期执行与触发执行两种执行条件。周期执行:任务每隔一段时间周期执行一次,需要用户设置执行周期。周期执行:任务每隔一段时间周期执行一次,需要用户设置执行周期。触发执行:一个触发执行:一个BOOL型变量的上升沿触发任务执行,需要用户设
71、置一个全局变量作为触发条件。型变量的上升沿触发任务执行,需要用户设置一个全局变量作为触发条件。第八讲第八讲TwinCAT PLC程序资源程序资源“Taskattributes”对话框对话框用户使用用户使用“Insert”下拉菜单中的下拉菜单中的“InsertTask”命令或命令或“AppendTask”命令,系统显示命令,系统显示“Taskattributes”对话框,如下图所示:对话框,如下图所示:Name项:项:输入任务名输入任务名Priority项:项:指定任务优先级(指定任务优先级(031)Interval项:项:指定任务执行周期指定任务执行周期Single项:项:指定任务执行触发变量
72、指定任务执行触发变量Select按钮:按钮:选择触发变量选择触发变量注意:注意:如果一个任务没有指定其执行条件,则该任务的执行只取决如果一个任务没有指定其执行条件,则该任务的执行只取决于其优先级。于其优先级。如果一个任务同时指定了执行周期与触发变量,则该任务的如果一个任务同时指定了执行周期与触发变量,则该任务的执行只取决于执行周期而忽略触发变量。执行只取决于执行周期而忽略触发变量。“ProgramCall”对话框对话框第八讲第八讲TwinCAT PLC程序资源程序资源用户选择所添加的任务后使用用户选择所添加的任务后使用“Insert”下拉菜单中的下拉菜单中的“InsertProgramCall
73、”命令或命令或“AppendProgramCall”命令,系统显示命令,系统显示“ProgramCall”对话框,如下图所示:对话框,如下图所示:在此对话框中,键入在该任在此对话框中,键入在该任务中所要调用程序的程序名或者务中所要调用程序的程序名或者通过点击通过点击“Select”按钮选择所按钮选择所要调用的程序要调用的程序如果所调用的程序需要输入参数,可以在该对话框中指定。如果所调用的程序需要输入参数,可以在该对话框中指定。举例:举例:program2(invar=:17)4、采样轨迹(、采样轨迹(SamplingTrace)第八讲第八讲TwinCAT PLC程序资源程序资源程序中变量的采样
74、数据储存在的一段程序中变量的采样数据储存在的一段缓存中,在缓存中,在“SamplingTrace”中以曲线轨中以曲线轨迹的形式显示缓存中的变量采样数据。迹的形式显示缓存中的变量采样数据。最多最多20个变量可以同时采样,每个变个变量可以同时采样,每个变量最大采样数为量最大采样数为500个,采样周期或采样个,采样周期或采样条件可以人为设定。采样数据的曲线轨迹条件可以人为设定。采样数据的曲线轨迹可以图形或文本的方式保存。可以图形或文本的方式保存。“TraceConfiguration”对话框对话框第八讲第八讲TwinCAT PLC程序资源程序资源用户使用用户使用“Extras”下拉菜单中的下拉菜单中
75、的“TraceConfiguration”命令,系统如图所示对话框。命令,系统如图所示对话框。在该对话框中,用户进行如下设置:在该对话框中,用户进行如下设置:指定需要采样的程序变量(最多指定需要采样的程序变量(最多20个)个)设定终止采样触发变量(数字量或模拟量)设定终止采样触发变量(数字量或模拟量)设置终止采样触发条件(上升沿、下降沿)设置终止采样触发条件(上升沿、下降沿)设置数据记录周期(以毫秒计算)设置数据记录周期(以毫秒计算)设置数据记录曲线轨迹的显示方式(单次、设置数据记录曲线轨迹的显示方式(单次、连续、手动)连续、手动)5、查看与配方管理器(、查看与配方管理器(WatchandRe
76、ceiptManager)第八讲第八讲TwinCAT PLC程序资源程序资源用户使用该项功能可以集中查看程序中的变量数据。此外,在用户使用该项功能可以集中查看程序中的变量数据。此外,在“WatchandReceiptManager”中用户中用户还可以预先设置多个变量的数据值并同时传送到还可以预先设置多个变量的数据值并同时传送到PFC中。中。添加变量语法如下:添加变量语法如下:.:=用户使用用户使用“Insert”下拉菜单中下拉菜单中“NewWatchList”命令可以添加多个配命令可以添加多个配方列表。使用方列表。使用“Extras”下拉菜单中下拉菜单中“SaveWatchList”与与“Lo
77、adWatchList”命令可以保存或加载其它配方列表。命令可以保存或加载其它配方列表。当当用户设置了变量的数据值后,在用户设置了变量的数据值后,在联机情况下使用联机情况下使用“Extras”下拉菜单中下拉菜单中的的“WriteReceipt”命令将概数据值传送命令将概数据值传送到到PFC中。中。第九讲第九讲TwinCAT PLC可视化元素可视化元素 TwinCAT PLC提供了可视化功能,提供了可视化功能,用户可以在计算机中以图形的方式查看程用户可以在计算机中以图形的方式查看程序执行过程中变量的变化情况并且通过图序执行过程中变量的变化情况并且通过图形的方式为变量赋值。形的方式为变量赋值。 用
78、户在离线状态下绘制一系列的图形用户在离线状态下绘制一系列的图形元素,将图形元素的相关属性(颜色、文元素,将图形元素的相关属性(颜色、文本、位移、旋转角度、触发等)与变量的本、位移、旋转角度、触发等)与变量的数值相关联。在联机运行情况下,图形元数值相关联。在联机运行情况下,图形元素的相关属性根据变量数值的变化而变化。素的相关属性根据变量数值的变化而变化。使用绘图工具栏:使用绘图工具栏:选择图形元素选择图形元素绘制矩形绘制矩形绘制圆角矩形绘制圆角矩形绘制椭圆形绘制椭圆形绘制多边形绘制多边形绘制多段直线绘制多段直线绘制弧线绘制弧线插入位图插入位图插入其它可视化元素插入其它可视化元素“Shape”属性
79、与属性与“Text”属属性性第九讲第九讲TwinCAT PLC可视化元素可视化元素 用户使用用户使用“Extras”下拉菜单下拉菜单中的中的“Configure”命令,系统显示命令,系统显示“RegularElementConfiguration”对话框。对话框。 用户在用户在“Shape”属性选项中可以设置图形元素属性选项中可以设置图形元素的形状:矩形、圆角矩形、椭圆形。的形状:矩形、圆角矩形、椭圆形。 用户在用户在“Text”属性选项中可以设置图形元素属性选项中可以设置图形元素中的中的静态文本及其文本的对齐方式与文本字体。静态文本及其文本的对齐方式与文本字体。“Color”属性与属性与“M
80、otionabsolute”属属性性第九讲第九讲TwinCAT PLC可视化元素可视化元素 用户在用户在“Color”属性选项中可以设置图形元素属性选项中可以设置图形元素的静态填充色、静态边框色。的静态填充色、静态边框色。此外,用户可以设置图形元素关联某一布尔变此外,用户可以设置图形元素关联某一布尔变量数值而变化的填充色、变框色。量数值而变化的填充色、变框色。 用户在用户在“Motionabsolute”属性选项中可以设置属性选项中可以设置图形元素中的图形元素中的X轴位移、轴位移、Y轴位移、显示比例、旋转轴位移、显示比例、旋转角度的属性所关联的变量。角度的属性所关联的变量。“Motionrel
81、ative”属性与属性与“Variables”属性属性第九讲第九讲TwinCAT PLC可视化元素可视化元素 用户在用户在“Motionrelative”属性选项中可以设置属性选项中可以设置图形元素的上、下、左、右图形元素的上、下、左、右4个边缘的位置属性所关个边缘的位置属性所关联的变量。联的变量。 用户在用户在“Variables”属性选项中可以设置图属性选项中可以设置图形元素中的显示形元素中的显示/隐藏、颜色变化、动态文本属性所隐藏、颜色变化、动态文本属性所关联的变量。关联的变量。“Input”属性与属性与“TextforTooltip”属性属性第九讲第九讲TwinCAT PLC可视化元素
82、可视化元素 用户在用户在“Input”属性选项中可以设置图形元素属性选项中可以设置图形元素的鼠标点击触发变量、鼠标点击切换画面、鼠标点的鼠标点击触发变量、鼠标点击切换画面、鼠标点击执行其它程序、允许键盘输入变量值的属性及其击执行其它程序、允许键盘输入变量值的属性及其相关联的变量。相关联的变量。 用户在用户在“TextforTooltip”属性选项中可以设置属性选项中可以设置图形元素的提示性文本。图形元素的提示性文本。首首先先,使使用用编编程程电电缆缆将将计计算算机机的的RS232串串行行通通讯讯口口与与PFC的的编编程程口口连连接接(请请注注意意不不要要进进行行带电插拔)。带电插拔)。编编写写
83、程程序序后后,使使用用Resources选选项项中中的的PLCConfiguration选选项项,指指定定所所使使用用的的可可编编程程总总线线控控制制器器的的型型号号。然然后后使使用用“Online”下下拉拉菜菜单单中中的的Login命命令令,将将应应用用程程序序下下载载到到所所选选的的PFC中。下载程序后,中。下载程序后,WAGO-I/O-PRO32C处于与处于与PFC的联机状态的联机状态如如果果需需要要在在计计算算机机上上仿仿真真运运行行程程序序,则则选选中中Online下下拉拉菜菜单单中中的的SimulationMode选选项项,然然后使用后使用“Online”下拉菜单中的下拉菜单中的L
84、ogin命令,即进入程序仿真状态。命令,即进入程序仿真状态。在在处处于于联联机机状状态态或或程程序序仿仿真真状状态态时时,使使用用Online下下拉拉菜菜单单中中的的Run命命令令即即可可运运行行程程序序。联联机状态时,机状态时,PFC中程序运行;仿真状态时,程序在计算机中仿真运行。中程序运行;仿真状态时,程序在计算机中仿真运行。第十讲第十讲下载程序与刷新程序存储器下载程序与刷新程序存储器在在WAGO-I/O-PRO32中使用中使用Online下拉菜单中的下拉菜单中的Flash命令,刷新程序存储器(命令,刷新程序存储器(FLASHROM),将程序),将程序固化在程序存储器中。如果不使用固化在程
85、序存储器中。如果不使用Flash命令,命令,PFC断电断电后程序不能保存。也可以通过上述方法修改后程序不能保存。也可以通过上述方法修改PFC中的程中的程序。序。下载程序并刷新程序存储器之后,断开计算机与下载程序并刷新程序存储器之后,断开计算机与PFC的连接,将的连接,将PFC的程序运行开关拨到的程序运行开关拨到“运行运行”位置,位置,程序即可运行。程序即可运行。第十一讲第十一讲TwinCAT PLC编程实例编程实例在本实例中,应用在本实例中,应用TwinCAT PLC编写一个控制水位的程序:编写一个控制水位的程序:图中水池水位为图中水池水位为05米,要求水位大于米,要求水位大于4米停止进水(泵
86、停止),小于米停止进水(泵停止),小于4米开始进水(启动泵),从米开始进水(启动泵),从而达到控制水位的目的。而达到控制水位的目的。为了防止水位波动而使泵频繁地开启而损坏设备,采用以下控制方案:为了防止水位波动而使泵频繁地开启而损坏设备,采用以下控制方案:水位大于水位大于4.1米时延迟米时延迟3秒后泵停止,水位回落秒后泵停止,水位回落4.1米以下泵不启动,直至水位小于米以下泵不启动,直至水位小于3.9米。米。水位小于水位小于3.9米时延迟米时延迟3秒后泵启动,水位上升秒后泵启动,水位上升3.9米以上泵不停止,直至水位大于米以上泵不停止,直至水位大于4.1米。米。1、建立一个新项目、建立一个新项
87、目第十一讲第十一讲TwinCAT PLC编程实例编程实例用户使用用户使用“File”下拉菜单中的下拉菜单中的“New”命令,在命令,在“NewPOU”对话框中选择对话框中选择“FBD”编程语言,然后点编程语言,然后点击击“OK”按钮。这样即新建一个项目。不要改变系统默认的按钮。这样即新建一个项目。不要改变系统默认的“PLC_PRG”程序名。程序名。注意:注意:用户不要改变系统默认的用户不要改变系统默认的“PLC_PRG”程序名。程序名。2、硬件选型与寻址硬件选型与寻址第十一讲第十一讲TwinCAT PLC编程实例编程实例硬件硬件订货号订货号数量数量地址地址可编程总线适配器750-815(MOD
88、BUS,RS485)1模拟量输入模块750-466(2AI420mA)1IW0,IW1数字量输出模块750-502(2DO24VDC)1QX0.0,QX0.1终端模块750-6001编程电缆750-9201注:注:750-466AI模块的输入值为一个整数,占一个字(模块的输入值为一个整数,占一个字(16bits)的地址。对应)的地址。对应420mA输入信号,输入值为输入信号,输入值为“032767”。在程序中需要将在程序中需要将“032767”的整数输入值转换为的整数输入值转换为“0.05.0”的浮点数工程值。的浮点数工程值。3、变量声明变量声明第十一讲第十一讲TwinCAT PLC编程实例编
89、程实例在本例中需要声明如下变量:在本例中需要声明如下变量:模拟量输入变量(整形模拟量输入变量(整形/1Word输入地址输入地址)数字量输出变量(布尔型数字量输出变量(布尔型/1Bit输出地址)输出地址)液位实际值变量(浮点型液位实际值变量(浮点型/1DWord内存地址)内存地址)2个延时接通定时器(个延时接通定时器(TON)实例实例在在PLC_PRG的声明部分中声明变量:的声明部分中声明变量:PROGRAMPLC_PRGVARlevelAT%IW0:INT;levelgczAT%MD0:REAL;pumpAT:BOOL;inst1:TON;inst2:TON;END_VAR4、PLC_PRG编
90、程编程第十一讲第十一讲TwinCAT PLC编程实例编程实例步骤一步骤一 : 将检测值转换为实际工程值将检测值转换为实际工程值使用使用“Insert”中中“Operator”命令,在程序网络命令,在程序网络1中插入操作符,将系统默认中插入操作符,将系统默认“ADD”操作符改为图操作符改为图中所示操作符。在每个操作符的输出部分插入其它操作符。中所示操作符。在每个操作符的输出部分插入其它操作符。在程序网络起始处的在程序网络起始处的“?”插入变量插入变量“Level”。在程序网络最后一个操作符在程序网络最后一个操作符“MUL”的输出部分使用的输出部分使用“Insert”中中“Assign”命令,插入
91、赋值指令。在命令,插入赋值指令。在随后的随后的“?”插入变量插入变量“Levelgcz”。在在“DIV”与与“MUL”操作符的操作符的“?”处分别插入操作数处分别插入操作数“32767.0”与与“5.0”。程序网络程序网络1如图所示:如图所示:4、PLC_PRG编程编程第十一讲第十一讲TwinCAT PLC编程实例编程实例步骤二步骤二:编写泵控制程序编写泵控制程序使用使用“Insert”中中“Network(after)”命令,在程序网络命令,在程序网络1之后插入程序网络之后插入程序网络2。使用使用“Insert”中中“Operator”命令,在程序网络命令,在程序网络2中插入操作符。中插入操
92、作符。在操作符后使用在操作符后使用“Insert”中中“FunctionBlock”命令,插入命令,插入TON定时器实例,在定时器实例的输出部定时器实例,在定时器实例的输出部分使用分使用“Insert”中中“Assign”命令,插入赋值指令。在随后的命令,插入赋值指令。在随后的“?”插入变量插入变量“pump”。在赋值指令位。在赋值指令位置使用置使用“Extra”中中“Set/Reset”命令,将输出设置为命令,将输出设置为“R”。根据以上步骤,完成程序网络根据以上步骤,完成程序网络3,注意程序网络,注意程序网络3中的定时器实例输出为中的定时器实例输出为“S”。程序网络程序网络2、3如图所示:
93、如图所示:5、仿真与下载程序、仿真与下载程序第十一讲第十一讲TwinCAT PLC编程实例编程实例用户使用用户使用“Online”中中“SimulationMode”选项,选项,“SimulationMode”之前出现之前出现“”标志。系统处标志。系统处于仿真模式,程序无需于仿真模式,程序无需PFC即可在计算机中执行。用户使用即可在计算机中执行。用户使用“Online”中中“Login”命令进入仿真模式,使命令进入仿真模式,使用用“Run”/“Stop”命令运行命令运行/停止程序,使用停止程序,使用“Logout”命令退出仿真模式。命令退出仿真模式。在下载程序之前,用户首先在程序资源下的在下载
94、程序之前,用户首先在程序资源下的“PLCConfiguration”中选择所应用的适配器。在本例中,选中选择所应用的适配器。在本例中,选择择750-815可编程适配器,如下图所示:可编程适配器,如下图所示:5、仿真与下载程序、仿真与下载程序第十一讲第十一讲TwinCAT PLC编程实例编程实例用户使用用户使用“Online”中中“CommunicationParameters”命令,在命令,在“CommunicationParameters”对话框中使对话框中使用用“New”命令,选择命令,选择“SerialRS232”通道。通道。在添加通讯通道(在添加通讯通道(Channel)后,用户使用)后,用户使用“Online”中中“Login”命令可以将程序下载到命令可以将程序下载到PFC中。下载中。下载程序后,用户在联机模式下使用程序后,用户在联机模式下使用“Run”/“Stop”命令运行命令运行/停止程序。在停止程序。在PFC离线独立运行时,用户通过离线独立运行时,用户通过硬件上的状态切换装置运行硬件上的状态切换装置运行/停止程序。停止程序。ks2000