CODESYS培训(第一部分基本知识)研华科技Wenxue.fan2016-3Agenda概述快速入门CODESYS在PLC上运行机制变量声明变量与物理I/O映射关系的建立概述support@codesys.comFoundedinJuly1994HeadquartersinKempten,Germanytheleadingmanufacturer-independentIEC61131-3automationsoftware快速入门本节内容介绍通用的操作流程了解建立工程基本环节前提是安装好CODESYSDevelop环境,和CODESYSRuntime运行环境本节的操作不针对具体的运行平台实际建立标准工程(Standardproject)已经包含了设备、Application、程序POU等本节从一个emptyproject讲起,以了解工程架构Step1:新建空的工程(Emptyproject)Step2:添加设备Step3:添加POU(PRG)Step3:添加POU(PRG)-Cont.Step3:添加POU(PRG)-Cont.Step4:添加TaskConfigurationStep4:添加TaskConfiguration-Cont.Step5:Build程序编译时若存在错误,可根据提示查看具体信息和错误发生处Step6:设置通讯参数selectGatewayscanselectPLCdeviceinformationappearssetpathlog-inStep6:设置通讯参数-Cont.建立新的连接Step7:下载并在线监控(online)Step8:在线调试总结建立一个工程需要的步骤?创建新的空工程(emptyproject)添加设备(adddevice)添加程序(addPOU–PROGRAM)添加任务(addtaskconfiguration)关联程序到任务并设置任务间隔时间(appendprogramtotaskandspecifytaskintervaltime)设置通讯参数(setcommunicationparameter)下载、在线运行和调试(goonline,startPLCsystemandcheck)CODESYS在PLC上运行机制DownloadorOnlineChangeLogin的要求通讯设置配置成功程序编译无错误DownloadorOnlineChangeLogin:程序必须被下载到目标设备上运行DownloadorOnlineChange运行机理CoDeSysDevelopmentSystemOnlinechangedownloadCompiledcodeCoDeSysRuntimeSystemRAMFLASHEEPROMFILE引导程序(BootApplication)创建引导程序在线时可创建引导程序并下载引导程序(BootApplication)工作机理CoDeSysDevelopmentSystemOnlinechangedownloadCompiledcodeCoDeSysRuntimeSystemRAMFLASHEEPROMFILECreatebootapplicationbootingthecontroller当控制器启动时程序自动启动源代码下载和上载CoDeSysDevelopmentSystemOnlinechangedownloadCompiledcodeCoDeSysRuntimeSystemRAMFLASHEEPROMFILECreatebootapplicationbootingthecontrollerSourcedownloadandupload源下载(SourceDownload)设置本节小结Login将编译后的代码下载到RAM上创建引导程序确保加电后PLC自动启动程序可以下载完整的源程序代码到PLC上下载源程序的具体内容由ProjectSetting设置变量声明数据类型示例类型:十进制(decimal)类型:十六进制(hexadecimal)类型:二进制(binary)编译人员必须知道数据类型数据长度(datasize)如何处理数据如何声明一个变量变量名称(variablename)符号:冒号(colon)数据类型(datatype)初始值(initialvalue可选)符号:分号(semicolon)注释(comment可选)基本数据类型(Elementarydatatypes)BINARY数据类型用于逻辑运算datatypelowerlimitupperlimitinformationcontentprefixBOOLFALSETRUE1bit(but1byteinmemory)xbBYTE02558bitsbyWORD06553516bitswDWORD0429496729532bitsdwLWORD00..264-164bitslw基本数据类型(Elementarydatatypes)NUMBERS数据类型用于算数运算datatypelowerlimitupperlimitinformationcontentprefixSINT-1281278bitssiUSINT02558bitsusiINT-32,76832,76716bitsiUINT065,53516bitsuiDINT-2,147,483,6482,147,483,64732bitsdiUDINT04,294,967,29532bitsudiLINT-263263-164bitsliULINT0264-164bitsuliREAL32bitsrLREAL64bitslr基本数据类型(Elementarydatatypes)Time数据类型运算类似NumbersdatatypelowerlimitupperlimitinformationcontentExampleprefixTIME0ms1193h2m47s295ms32bitsT#1m30stLTIME0ms213503d23h34m33s709ms551us615ns64bitsLTIME#50d20h10mltTIME_OF_DAY00:00:0023:59:5932bitsTOD#10:38:54todDATE01.01.1970toapprox.06.02.210632bitsD#2011-04-20dtDATE_AND_TIMEs64bitsDT#2011-02-20-10:38:54date变量类型与操作DATATYPEBINARYNUMBERS/TIMEDATALogicArithmeticcomparisonOperationANDANDNORORNXORXORNADDDIVMULSUBEQNEGEGTLELT基本数据类型:STRINGCODESYSV3有2类String类型STRING1BYTE/每个字符ExamplesText:STRING:=‘CODESYS’;WSTRING2BYTE/每个字符ExamplewsText:WSTRING:=“CODESYS”;基本数据类型:STRING的使用STRING缺省长度为80个字符,在定义时需要定义长度以节省内存空间:sText(10):STRING:=‘CODESYS’;(*11BYTE*)wsText(10):WSTRING:=“CODESYS”;(*22BYTE*)STRING可处理1~255个字符WSTRING存储在Standard64library类型转换参与运算的变量必须是同一数据类型如果操作数为不同数据类型,必须运用数据转换功能变量(Variables)命名规则字母和数字组合首字符必须是字母只能包含一个下划线没有空格不包含IEC关键词和操作符,如:+,-,*,/,……不区分大小写没有长度限制xSecurityDoor1Open:BOOL;(*TRUE^=Doorisopen*)变量(Variables)命名规则(Cont.)有明确意义的基础名称部分(basename)有明确意义的尽量短的英文名字第一个字母可大写(如:FileSize)前缀Prefix(小写)与数据类型相关若是BOOL变量,名称体现开关状态xSecurityDoor1Open:BOOL;前缀(*TRUE^=Doorisopen*)Basename常数(CONSTANT)命名规则前缀是表示常数的字符c和一个下划线VARCONSTANTc_uiSyncID:UINT:=16#80;END_VAR全局变量(Globalvariables)命名规则命名根据全局变量GLOBALVariables(g)和全局常数GLOBALConstants(gc)采用相应前缀VAR_GLOBALCONSTANTgc_iBufferSize:INT:=100;END_VARVAR_GLOBALg_abyBuffer:ARRAY[0..gc_iBufferSize–1]OFBYTE;END_VAR全局变量(Globalvariables)如何声明?局部变量(Localvariables)在POU内部定义全局变量(Globalvariables)在全局变量列表GVL中定义,工程中任何程序都可以调用全局变量(Globalvariables)如何调用?全局变量(Globalvariables)根据命名空间(namespace)调用全局变量当有多个GVL时必须采用命名空间方式调用全局变量变量属性用户定义数据类型Userdefineddatatypes(DUT)|数组ARRAY:数组是相同数据类型的数据集合用户定义数据类型|数组ARRAY的初始化用户定义数据类型|数组2维数组用户定义数据类型|数据结构STRUCT:数据结构是变量集合用户定义数据类型ARRAY和STRUCT的结合用户定义数据类型ARRAY和STRUCT的结合|初始化用户定义数据类型|枚举ENUM:枚举是由一系列常量字符串组成的用户定义数据类型练习创建如下变量“astCleaningPrg”练习在线显示用户定义数据类型|联合UNION:联合是一种构造类型的数据结构。在一个“联合”内可以定义多种不同的数据类型,一个被说明为该“联合”类型的变量中,允许装入该“联合”所定义的任何一种数据,这些数据共享同一段内存,以达到节省空间的目的用户定义数据类型|联合示例:用户定义数据类型|别名ALIAS:将别名类型确定为其它数据类型保持和持续变量(RETAIN&PERSISTENT)当复位、下载和重启时保持数据不丢失保持和持续变量(RETAIN&PERSISTENT)本节思考题什么是数据类型?运算时数据类型应注意什么?如何使用数据类型转换?数组和数据结构的区别是什么?什么是枚举?联合是如何工作的?重启PLC时如何保证数据不丢失?下载程序时如何保证数据不丢失?变量与物理I/O映射关系的建立过程映射输入input输出output内部标志位markerPLCCycle扫描周期—过程映射I/O扫描—输入段I/O扫描结束—程序扫描开始程序扫描—执行语句1程序扫描—执行语句2程序扫描—执行语句3程序扫描—执行语句4I/O扫描—输出段地址语法在IO配置中实现变量与物理IO映射创建新的变量在程序直接引用在IO配置中实现变量与物理IO映射映射已有变量使用“InputAssistant”选择已有变量在程序中定义变量关联物理IO数据结构或FB实例关联物理IO例如Structure数据结构或FB实例关联物理IO实现如下过程数据结构或FB实例关联物理IO如何实现?数据结构或FB实例关联物理IO上述操作使得按照同样步骤安装新的设备非常容易实现数据结构或FB实例关联物理IO上述操作使得按照同样步骤安装新的设备非常容易实现ThankYou!