




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
初识 CoDeSys简 初识 CoDeSys简 菜单 设备 指令表 OPC通 EtherMAC总 OEM组件接口 1 PC端平台搭 CE端平台搭 附 通用IO板 IO带编码器锁定板 5路485Modbus板 通用IO板 IO带编码器锁定板 5路485Modbus板 回零方式1(Home+ 2 CoDeSysCoDeSys(ControlledDevelopmentSystem)是一款由德国3S公司(SmartSoftware编程系统,并提供运行于嵌入式操作系统(WindowsCE等)之上的运行时环境(实时运行(LD,指令表(IL,功能块图(FBD,顺序功能流程图(SFC,结构化文本(ST)等,并自行在CoDeSysGateway组件和实时运行系统(RuntimeSystem)的形式接入到CoDeSys编程环境中,这既可以丰富CoDeSys1.2CoDeSys中所涉及的所有概念做出具体说明,具体说明可在CoDeSys编程‘POUs‛41-如上图操作,此时再打开‚帮助即为英文版POUProgramOrganizationUnit;POU即‚程序组织单元其包含程序,函数和功能POUs仅仅是在‚设备‛视图中进行管理,当POU被插树中时 ,使用右键菜单命令‚添加对象‛并从菜单中选择‚POU。通过POU对话框可以配臵POU名称,类型和实现语言关系,来调用各POU实例。POU都是由声明部分和实现部分组成的。实现部分由可用的编程语言中的一种编写,例如IL、ST、SFC、FBD、LD、CFC。5程序程序可以被其他的POU程序程序可以被其他的POU调用,但函数中不可以调用程序,程序也没有实例。期间被其他POU调用。函数功能块POU调用,其输出变量值和内部的值均会发明为某个POUPOU调用;声明为全局变量的功能块实例,各POU能块的运算结果Q保存在变量A中。CMD_TMR(IN:=%IX5,PT:=无论是程序,函数还是功能块,其变量都有输入变量(VAR_INPUT),输出变量6(AR_OUT(AR_OUTPUTPOU内部使用,若想供外部调用,需要将其定义为其他三种变量,外部变量若想1.3CoDeSys现在比较新的且较为稳定的版本是V3.5SP4Patch2,该编程环境是运行在Windows操作系统上,包括WindowsXP/7等,其操作界面与其他常见的运行于Windows本节主要介绍CoDeSysV3.5SP4Patch2的编程界面,对于界面布局以及界面功能作简1-可视化类型等都换成建议的最新版本,然后点击‚确定这样就可以正常打开V3.4所编写的CoDeSys程序71-1-,POU(设备树区是对整个程序的一个完整的树状结构描述。包括程序所基于的设备,PLC程序所需要的库的库管理器,任务管理器,视图管理器,配方管理器,各个POU(程序,功1-381.3.2.菜单1-(1)1.3.2.菜单1-(1)‚文件‛选1-(2)‚视图‛选项卡1-(3)‚编译‛选项卡91-除‛用于清除之前的编译结果,并清除掉已下载到设备上的程序。”生成运行时系统文件1-除‛用于清除之前的编译结果,并清除掉已下载到设备上的程序。”生成运行时系统文件一般在编译库文件后用于生成m4(4)‚在线‛选项卡1-文件,一个.rcvisu文件夹等。将.app.crc文件放入一个新建的pl3plc3iu运行时C(5)‚调试‛选项卡1-‚调试‛选项卡主要用于‚启动1-‚调试‛选项卡主要用于‚启动/停止‛应用程(6)‚工具‛选项卡1-‚库…‛用于加载CoDeSys的组件库,这里的组件库可以是CoDeSys提供的组件库,‚设备库…‛用于安装设备描述文件,PLC程序需要基于该设备进行编程‚1.3.3.设备1-1.3.3.设备1-Device,括号内为其设备描述文件的名字,此处即为CODESYSSoftMotionWinV3。PLCPLC上的应用程序,应用程序可以有多个。此处应用程序定名为Application。POU以及视图等进行全局变量表VAR_GLOBALEND_VAR之间,可在各个POU或者动作库管理器1-1-任务配臵MainTaskPLC_PRGPOU,换句话说,就是程序只周期执行PLC_PRG,如果编辑了其他POU,则需要在PLC_PRG中调用才能被执行。如果该程‚Mainask,3类型,可以是CylicExternal下方的POU则是主任务执行的POU1-视图管理视图管理器分为‚目标视图‛和‚网络视图‛两部分‚目标视图‛和‚网络视图‚用字符串以防止在设备上运行时不能显示中文的现1.4完全支持所有符合IEC61131-3标准的PLC编程语言,包括梯形图,指令表,功能块图,顺序功能流程图,结构化文本等,并且CoDeSys拥有一种灵活性更高,使用更为方便快捷的本节主要对连续功能图以及基本的五种PLC编程语言做一下简单介绍,方便读者熟悉用方法,可参见CoDeSys编程环境中的‚在线帮助‛菜单中‚编辑器‛项,里面有各语言1.4.1.连续功能图CFC编辑器中,CFC语言以图形块的形式表示控制功能。每一个图形块都是具有特数(即为其引脚赋值)即可。CFC具有高度模块化的特点,并且其功能块的位臵随意,操图POU的局部变量;下方1-1-C++,C#等面向对象编程的语言当中,有‚类‛以及‚对象‛的概念,CoDeSys中的‚功能块‛就类似于‚类,CoDeSys中的‚对象‛当然就和C#等语言中的‚对象‛相‚,‚巴士‛等具体的汽车‚‛是实际存在的,也是在编程中实际调用的单元,41-图‚???1-A_AxisEnable1-1-是在右边栏)1-1-同理点击‚???1-同理点击‚???可以输入变量名,可以是全局变量,也可以是该POU的局部变量。当BOOLTRUE/FALSE,也拽进行连接,如图1-191-CC的执行顺序是由上到下、由左到右,按照‚务配臵‛中设臵的周期循‚输入没有‚执行顺‚按照数据流排1-将任务类型选为Cyclic并设臵一个间隔周期,在下方的1-将任务类型选为Cyclic并设臵一个间隔周期,在下方的POU栏中添加一个POU作为实现的POUCFC实现的部分会按照设定的数据流顺序,并按照设定的间隔时间周期执1.4.2.梯形逻辑图→‚1-CFC一样,进入编1-CFC一样,进入编辑界面后也分为上方声明定义区以及下方的编程区,右侧的工具箱中有LD常用的编程单元,包括常开/常闭(取反)触点,线圈,逻辑运算块,数学运算上引出的分支,在一节内可以引出多个并联分支,如图1-22所示,将并联触点拖放到绿色联分支还是从下方生成新的1-示例如图1-23所示,为交流异步电动机直接启动1-1.4.3.指令1-1.4.3.指令表操作数组成。在无计算机的情况下,适合采用PLC手持编程器对用户程序进行编制。同时,指令表编程语言与梯形图编程语言图一一对应,在CoDeSys编程环境下可以相互转换。图1-25就是与图1-23PLC如果在同一节中有并联分支,则右键选择‚在下方插入IL行,如1-图1-25就是与图1-23PLCCoDeSys图1-25就是与图1-23PLCCoDeSys编程环境下具体‚‛,即转换为下图1-1.4.4.功能模块图1-261-231-1.4.5.顺序功能流程图Application中添加POUSFC作为编程语言,下图为编程界面,上方为声明定义区,下方为编辑区,右侧为工具箱。在代表‚步‛的Step方块上或者代表‚跳转条件‛1-所谓‚插入前步转移,顾名思义,就是在前一步为真的条件下所要跳转到并臵,即先判断再臵,即先判断再执行。如图1-27,先判断Trans2,再执行Step2。而‚插入后步转移就是先执行再判断,在图1-27中,即先执行Step3,再判断Trans3,以便于下一步的执行。每一个‚步‛都是由各种动作来实现的,这些动作包IEC认证步动作(关联动作)和IEC扩展步动作。IEC认证步动作(关联动作)分配多个动作到一个步时,动作列表会从上到下执行,如图1-28中的Step3联动作act1和act2,act1和act2是其动作名1-act1和act2前面的两个限定符‚N‛代表了该动作的‚资格”,每一个限定符表示所代1-点击限定符‚N会使其变为编辑状态,并在右侧出现一个按钮,点击按钮会打相应的POU下方列出,如图相应的POU下方列出,如图1-1-IEC扩展步动1-"步入口"动作(步激活只要‚步‛被激活,这些步动作就会被处理,且在‚步激活‛动作之前"步激活"动作(步动作‛EC("步出口"动作(步无效 示第一次为步激活时,第二次为步无效时。见图1-31:1-动作Action_AS1关联到步AS11-动作Action_AS1关联到步AS1,左边为一个步动作,右边为一个有资格N的IEC动作。两种情况下,两个转换都被使用了,初始步再次到达将会花费两个PLC周期的时间。iCounterAction_AS1Init之后,左侧例子中的iCounter1iCounter2IECAS1的无效——已经执图1-321-详情可以查看‚在线帮助‛里面的‚SC编辑器‛一节1.4.6.结构化文本于高级语言的一种编程语言。在大中型的PLC系统中,常采用结构化文本来描述控制系统PLCBASICC图1-33ST图1-33ST1-,做图1-34的操作并确定,就会在编辑区显示‚T1(:=PTQET=>,择有用的输1-1.51.5编辑视图之前,首先需要添加‚视图操作如1-‚isualization举例来说,电机使能按钮,可以直接将工具箱中‚omoncontrols中的‚Bton素拖放到视图编辑区,也可以将工具箱中‚基本的‛下的‚RunddRectangle(圆角矩形)元素拖放到视图编辑区作为按钮,如图1-361-选中该1-选中该矩形,可以看到右侧的‚属性‛栏显示该按钮的相关属性:Texts属性,可更改;‚(OnMouseClick‚(OnMouseDone)‚是否选择上了,选上之后才会有更多高级属性可配臵,如图1-36所示。单击事件后的‚配臵即弹出‚输入配臵‛对话框,如下图1-可以将左边栏的‚操作‛选到右边栏,可以同时选多个‚操作‛一起移到右侧,比如1- 变量_变量_xsSeOn使其臵TRUEFALSE,初始FALSE。MoueCc变量,再在下图右侧选VisuDialogsNumPad,则程序运行时,点击该文本框,就会1-1-39‚%.2f‚为‚.2f‛‚%d,‚%s‚ext击后面的按钮,通过弹出的‚输入助手‛输入要关联的变量1-‛在Colors一栏中改变Normalstate(正常状态)和Alarmstate(报警状态)的Framecolor(框架颜色)和Fillcolor(填充颜色‚_xsSeOn为FALSE是正常态,1-如果‚输入配1-如果‚输入配臵‛中选择的操作ST代码如图1-41,右侧即可直接(OnMouseClick1-有的时候希望一个按钮可以有两种功能,比如,这个时候按钮就不首先在全局变量表中定义一个BOOL型变量和一个WSTRING类型的全局变量,此处定义为bTextChange:BOOL:=FALSE;和TextTest:WSTRING:=“结束”;然后在视图中拖入一个圆角矩形框,在其中输入‚%s,然后在其属性栏中的‚Textvariables‛中填入‚extest再在‚输入配臵‛中的OnMouseClick中添加配臵‚切换变量‛和‚执行ST代码切换变量‛中要切换的变量,执行的ST代码如下:IFbTextChange=TRUE至此,按钮文本间切换设臵完毕,详情可参看示例程序上的‚结束/开始‛至此,按钮文本间切换设臵完毕,详情可参看示例程序上的‚结束/开始‛按钮,‚D1-然后从工具箱中添加放臵图片的图片框‚Image‛,如下1-,1-按钮在Frame中显示一个矩形,单击‚正圆‛按钮在Frame1-‚Mainisu‚isuEipse‚isuRect‚isuRound然后在MainVisu中的框架内点击右键,选择‚框架选择打开框架选择对话框,选择要在该框架内切换显示的视图移入右边栏,如图1-46:1-默认框架中显示的是默认框架中显示的是排序第一个的视图,可以用上图中的MoeUp命令调序,单击OK1-nuCk栏,1-命令,然后在相应的‚赋值‛项中通过单击赋值文本框后面按钮打开‚输入助手‛选择相1.6方可以设臵和监视PLC的控制参数,可以从PLC1.6方可以设臵和监视PLC的控制参数,可以从PLC中读出和写入,也可从文件载入和存成文‚例程序具体可参见‚示例程序‛文件夹中的Rec_Test_V35.project1-‚1-1-1-1-Disk\,‚.txt,‚.txt,一个"配方定义"包含一个列表的变量和一到多个"配方"(设定值)来设定这些变量。通过使用不同的配方,你可以在一个冲程内分配另外一组值到一系列PLC中的变量。添加配方定义的方式如图1-1-单击打开‚添加配方定义‛对话框,更改名称如1-将全局变量表GVL里的变量‚bsouPoA‛即图1-54‚设臵位臵‛标签后的文本框所关联的变量1-在设备树中双击打开之前新建的配方定义1-在设备树中双击打开之前新建的配方定义‚RecMotorPos,‚AbsolutePosA,并在其后右键添加配方,配方名设为‚MotorPos1,如图1-55所示。这大‚A‚1-可以在设备树Application下定义一个功能块ReadRec,其功能是从配方文件中的一个配方中读取电机的位臵值存放到AbsolutePosA。RecipeManagement库中查看,在我们向设备树中添GVLgRecipe:RecipeManCommands;ReadRec,该功能块用于初始化时从配方文件 ‚AbsolutePosA,该功能块实现如1-LoadFromAndWriteRecipe函数,该函数作用是从指定的文件中加载1-LoadFromAndWriteRecipe函数,该函数作用是从指定的文件中加载功能块添加到主程序PLC_PRG中,则程序运行时就会自动从‚C:\HardDisk\‛路径下加载Disk\1-这样在程序启动时,就会自动1-54的‚设臵位臵‛后的文本框中1-571-序运行时配方对应的当前值会在相应配方定义的如图1-59位臵中显示,并存放到指定的1-在视图中添加‚保1-在视图中添加‚保存位臵‛按钮,然后在其OnMouseClick事件配臵中调用ParameterSaveC:\Hard路径下MotorRecipe.txt中,如图1-601-有的时候希望自己用PLC语言实现一套较为固定的逻辑,并将其封装成库,这样在以MC_Power功能块,创建过程如下:1-1-选择Addlibrary(添加库。在弹出的‚Addbar‛对话框中,选择下面的‚Advanced…(高级)按钮,这1-1-1-并命名为‚woAxesPower,选择CFC为实现语言,单击确定后打开编辑界面1-象编译一遍,看有无错误,然后修改一下工程信息,工程信息在左侧POU栏里,打开如下图1-一个工程,并打开库管理器,选择‚添加库,在弹出的对话框选中我们想要添加的TwoAxesPower库,如下1-1-1-1-1-选中该选项后,就可以使能图1-70中红色圈中的‚库…对话框,在该对话框中可以1-1-1-1-找到需要删除的库,选中,然后点击右侧‚卸载‛按钮,即可卸载该库1-1-1.8.1-1-1.8.OPCOPC(OLEforProcessControl,OLE)是一个工业标准。LinkingandEmbedding)OLE技术,该技术是在客户应用程序OPC(用于现场过程控制的对象链接与嵌入技术)为‚基于Windows的应用程‚现场过程控制应用程序‛建立了桥梁CoDeSys提供了在PC机上的服务器配臵器,即OPCConfigurator,可在‚开始菜单\所V3端)PC端(相当于服务器端)PC端均需作相应的设臵并进行相关编程(PC端需要OPC服务器端程序,工控机需要CoDeSys编写的OPC客户端程序。首先需要在PC端的注册表中注册OPCDAAuto.dll这个动态链接库,先将该dll‚Cindos\Sste32目录下,然后如图1-73打开命令提示符,进行如下操作,即可注册成功。如果是64位系统,先将该dll放在‚Cidos\SsWOW4‛目录下,然后使用如下命令‚REGSVR32C:\Windows\SysWOW64\OPCDAAuto.dll‛加载该dll1-下一步就可以在PC机上编制服务器端程序用于和工控机上客户端应用程序之间的通信C#OPCdllInterop.OPCAutomation.dll一项引用,在C#编程时,可以引用其中定义的类或函数,添加引用的方法如图1-1-1-X86,如图1-1-CoDeSys首先打开CoDeSysV3.5SP4Patch2,点击左上弹出‚新建工程‛对话框,如图1-76所示,1-点击确定后,弹出‚标准工程‛设臵对话框1-点击确定后,弹出‚标准工程‛设臵对话框,如图177载ndos7系统的C平台上运行,并且有运动控制,所以这里我们选择的设备是Csonn3,该设备在安装完esPCG这一PUC_PGCFC1-1-1-,1-在该对话框中作如图1-80所示操作,单击‚添加设备‛按钮即可在设备树中的1-1-A_Home:setPosA:jogA:jogA:StopA:上述功能块可以在‚在线帮助‛中查找到,具体位臵为‚SoftMotion‚程序接‚ofMoon函数‚3_c.bar‚Poe‚单轴功能块‛‚第一部分图1-1-ST1.4.6节编程语言的1-ST1.4.6节编程语言的ST介绍中,已经将程序附上,即如图1-33所示,在设备树中的Application下添加该Timer的POU。timer1:Timer;1-编辑完PLC_PRG后,下一步添加一个‚视图将PLC_PRG中的变量关联到视图中1-具体每个视图元素所关联的变量,可在提供的示例程序具体每个视图元素所关联的变量,可在提供的示例程序编辑完后即可点击工具栏中的‚编译‛按示如图1-851-在电脑上模拟运行的程序,没有关联的物理设备,所以我们使用的设备是CoDeSysSoftMotionWinV3,是一个虚拟设备。这相当于在电脑上模拟了一个PLC设备,而我们若在‚开始‛菜单中,按图1-86所示位臵找到CoDeSysSoftMotionWinV31-1-1-如图1-881-running状态。此时双击设备树中Device项打开,如图1-1-单击‚Scannetwork…‛弹出单击‚Scannetwork…‛弹出‚选择设备‛对话框,如图1-1-的话,可以点击右侧的‚扫描网络‛按钮重新扫描,然后选中该设备,在图1-90中即选中,,如果是该PLC图标是灰色的,则需要单击‚tPC‛来启动虚拟PLC设备‚Deice1-单击工具栏中的‚登录1-由于之前已下载过程序,所以会如图1-单击工具栏中的‚登录1-由于之前已下载过程序,所以会如图1-92上未运行应用程序,是否下载单击‚是,Application的1-931-1-1.10.1-1-1.10.想要加断点的位臵,按F9,如图1-95所示:1-1-序会持续运行,按1-序会持续运行,按F10是单步运行。1-1-2EtherMAC2EtherMAC2.1EtherMAC工业实时以太网总线是山东大学数控研究中心自主研发的用于运动控制领更灵活的数据结构和更高的通用性。不同于其他实时以太网总线,EtherMAC实时以太网总时时间动作,实现节点之间的动作同步性。因此EtherMAC总线对控制器的实时性要求不高,也无需在控制器上安装特定的硬件设备,EtherMAC实时以太网总线的主控制器可以采WindowsCE操作系统也并非硬实时EtherMAC的数据结构遵循IEEE802.3标准,能够实现最多254个节点进行线型级联。同时节点间采用屏蔽双绞线进行连接,相邻节点之间的间距最大可达100m,便于实现车间级的分布式控制。各类模块齐全,包括Elink标准伺服驱动模块,总线型伺服网关模块,IO板,带Modbus通信的编码器板,两轴控制板,三轴控制板,五轴控制板等,并且组网灵活EtherMAC实时以太网总线采用线性串联结构,数据帧在各个周期内从首节点依次传输 帧格式及通信阶段介2-2-1。总线控制指令及数据长度占两个字节,其中低11EtherMAC以太网数据帧的总长度,高4位为总线控制指令。(0x1(0x3(0x2(0x03.运动3.运动控制平本章简单介绍了OEM组件接口库及其外部实现和EtherMAC总线通信库,并主要介绍了基于CoDeSysEtherMAC总线的运动控制平台的搭建和运行方法,读者通过对本章的3.1.OEMOEM组件接口库是CoDeSys提供的一种针对原始设备制造商(OEM厂商)的二次开展名为cfg)自由组合,加强了系统的模块化和灵活性。尽管EtherMAC现场总线OEM组件库的实现是以动态链接库的方式提供,其仍旧需要IEC61131-3标准的接口文件CmpEtherMAC.library作为组件库与开发平台之间的功能块用于实现IEC3.4节会做介绍。在CoDeSys编程环境中加载该library库后,即可调用相应模块编程,调用方法于其他系统功CmpEtherMAC.dllOEMC或C++编程语言实现所定线程与EtherMAC实时以太网通信库进行数据交换。CmpEtherMAC.dll与EtherMAC实时以太网总线通信库(EtherMAC_Comm.dll)之间的OEM组件库中的功能块时,CmpEtherMAC太网通信库EtherMAC_Comm.dll的函数API进行接收。当总线上硬件返回数据后,由实时EtherMAC_Comm.dll进行解析,通过通信线程和功能块实现函数的处理后反馈到IEC程序中功能块的输出端。数据、模拟量/数字量转换、编码器及Modbus通信、专用网关数据、总线数据。结构体数太网通信库EtherMAC_Comm.dll的函数API进行接收。当总线上硬件返回数据后,由实时EtherMAC_Comm.dll进行解析,通过通信线程和功能块实现函数的处理后反馈到IEC程序中功能块的输出端。数据、模拟量/数字量转换、编码器及Modbus通信、专用网关数据、总线数据。结构体数换‛和‚同步IEC程序循环事件与总线通信周期‛的任务,其实现的基本功能为:,触发外部事件。使该通信线程执行的流程图如图3-1所示:初始触发EVENT_EtherMAC事件,始执行IEC程否Finished是否触是3-读取总线数3.23.2EtherMAC述进行配臵。配臵文件介绍见3.3.2节。在枚举,配臵,周期通信阶段都需要打开网口读写数据操作,NIC_OP.dll3.3.,‚,EtherMAC由于CoDeSysV3.5SP4Patch2WindowsPCWindowsXP/7制系统以及实际生产需要的要求,工控机上的操作系统采用Microsoft(微软)公司开发的32WindowsCE(WinCE)6.0,该系统是微软开发的用于各类嵌入式设备的嵌入式系统。WinCE4大类CPU型号以及各种标准硬件。WinCE系统具有很高的可靠性和稳定性,由内核机制和时间片机制来保证系统的实时性,同时由微软提供系统的维护和技术支持。WinCE可以根据需求对内核进行自由裁剪和定制,提高了系统的灵活性,降低了对硬件的需求。此外,WinCE系统Win32API函数和对.NETPC上的程序更加方便的进行IntelX86架构(同时支持ARMIntelX86架构(同时支持ARMCortex-A8架构3.3.1.PC端平台搭PC机上所需要的文件有三个,分别是CoDeSys功能块库文件描述文件3-CoDeSys,在菜单栏选择‚工具‛→‚设备库在打开设备库对话框中…功,随后关闭‚设备库‛对话框即可,如3-‛,型中选择库文件,并打开所提供的CmpEtherMAC.library,如图3-4。3-打开库3-打开库文件后点击工具栏上的‚保存工程并如果在‚打开工程‛对话框中找不到library文件,也可以如下安装库3-3.3.2.CE端平台搭CE端需要准备的文件如图3-6所示,请将所有文件复制到工控机HardDisk3-plc3visu方式3-之后便会在上述文件夹中生成一个Application.appApplication.crc文件,还有一2CE端的文件也可以不包含上述2CE端的文件也可以不包含上述plc3visuCE上启动用程序存在,需要用网线将PC机与工控机相连,PC机与工控机需设臵在同一网段内,设3.3.3PC上登录并下载程序到工控机CECE端会自动生成visuplc3Application.appApplication.crc1.9节下面介绍一下CE第一‚节‛是CoDeSys加载完自己的组件后要加载的部分,其中Component.0=CmpEtherMAC这一句代表要加载的外部组件,即我们自己编写的CmpEtherMAC.dll,如果01,则会保存。Application.1=Applicationplc3app的名字,可在PC机上将工程名改成自己想要的,然后再改这个cfg中的应用名。;TODOadaptthispathaccordingtoyourflashFilePath.1=\HardDisk\plc3,*.app,FilePath.1=\HardDisk\plc3,*.app,*.ap_,*.frc,*.csv,*.err,*.crc,*.dat,此处的硬盘名为HardDisk,如果用户正在使用的工控机硬盘名为HardDisk或者ResidentFlashHardDisk都修改为正在使用的工控机的硬盘控机启动时就会调用该文件,所以修改只能在PC机上修改,再拷贝到工控机启动用的CFdll库中也有路径问题。所以如果换了硬盘名不同的工控机,也需要更改并重新编译后才能使用,否则会无法正常加载dll,有待改进。的配臵,比如电机配臵、IO配臵等,举例如下图3-83-有[Device1],若节点数是2,则在[Device1]后添加新的节[Device2],以此类推。块,还包含电机配臵和IO配臵。具体解释如下:具体各板卡配臵可查看附录1。1(NET1)EtherMAC0Net-In2(NET2)PC3-93-IP地192.168.0.XX,PCIP。比如工控机与板卡相连的网卡的名称为3-IP地192.168.0.XX,PCIP。比如工控机与板卡相连的网卡的名称为PCI\\RTCENIC1,其IP为7,另一个与PC相连的网卡为(Contro可以把0换成8的为0。单击任务停靠栏图3-3.4.编程部署调试示本节主要介绍一下基于CoDeSys和EtherMAC总线平台进行编程,部署程序到工控机,现将之前第1章编程仿真时的示例程序Virtual_Elink_Test_V35.project改名为现将之前第1章编程仿真时的示例程序Virtual_Elink_Test_V35.project改名为前安装的3-‚Mainask,‚External选择‚EVENT_EtherMAC,如图3-12所示3-下一步设臵一下视图管下一步设臵一下视图管理器,打开设备树中的‚视图管理器,更改字符集控机上无法正常显示中文字符,如图3-133-3-后需要加载到工程中的库管理器中,过程如下图3-3-加一个单轴控制模块Elink即可。在主任务下的主程序PLC_PRG里所有的之前已添加实现的功能块后添加小模块3-加一个单轴控制模块Elink即可。在主任务下的主程序PLC_PRG里所有的之前已添加实现的功能块后添加小模块Elink存储在AllFeedbackPosA变量中,然后将AllFeedbackPosA变量赋值给小模块的Motor0_CommandPos3-3-在主程序结束后,需要添加一个EtherMAC_EndACK模块,如图3-17,该模块主要用于通知OEM组件接口库CoDeSys程序本循环已执行完,实现IECEtherMAC通信3-3-3- 松下网关板卡示例程器的工控机上,这样,对应的CmpEtherMAC.library库是一样的,但CmpEtherMAC.dll和EtherMAC_Comm.dll是不同的,因为dll库的编译与平台相关,而library库的编译只与CoDeSys的版本有关,所以只换平台不换编译器,CmpEtherMAC.library库不变(都是在CoDeSysV3.5SP4Patch2上编译。先新建一个工程,然后加载CmpEtherMAC.library库,由于设备换成ARM工控机了,所以需要安装新的设备描述文件,ARM工控机对应的设备描述文件名为SDUCNC_ARM_CE7.devdesc.xml,安装完成后,将设备更新成最新的设备,设备名为CoDeSysControlfromShandongUniversity,更新完成后,即可开始编程。全局变量,具体可参见示例程序PaGatewayDemo_30_V35.project的GVL。3-GVL中有一个结构体类型CurrentControlledMotorDatarCurrentMotorDataSetCurrentMotorData()SetCurrentMotorData()CurrentMotorID031,代表32个电机的ID,可以指向之前GVL中定义的对应各电机参数的数组变量,具体参看在主程序PLC_PRG中,拖入功能块EtherMAC_PanasonicGateway,实例化名称为式需要给每个周期的绝对位臵值,这个运算过程可以用CoDeSys提供的MC_MovaRelative功能块实现。示例程序中自定义了一个AxisControl功能块,其内部由MC_Power,REFERENCETOAXIS_REF_VIRTUAL_SM3,用于接收轴变量,该结构体中的其他信息主MotionControlCmdExecute输入引脚不需要赋值,只需要给定模式以及相应模式下的速度值松下电机设臵miniUSBPC3-O3-O,‚OK,3-Pr7.250r/min,改成1,代表unit/s。也可以直接加载已经设臵好的参数文件,选择菜单栏中的‚读取3-找到对应的参3-找到对应的参数文件,点击‚OK,然后弹出如下3-‚EEP4.4.1.附录1:各板卡4.4.1.附录1:各板卡配臵信4.1.1.小模块Elink(单轴控制板卡设备类型MotorConf4-nportCnf(4-设备类型DeviceType:EtherMAC_TriAxesCardMotoACon(4-MotorBConf(配臵同三轴控制卡,使用电机轴1和电机轴3。4-设备类型DeviceType:EtherMAC_TriAxesCardMotoACon(4-MotoBConf(MotoCConf(nportCnf(4-设备类型设备类型MotoACon(4-MotorBConf(MotorCConf(MotorDConf(MotorEConf(nportCnf(4-表4.1.5.通用IO板88IO设备类型DeviceType:IOCard_IN8_OUT8nportConf(16输入IO板卡:设备类型:nportCnf( 16IO设备类型IO设备类型IO设备类型IO配臵:InportConf(十进制)0-1271485Modbus485Modbus板配臵文件中板卡类型为FiveModbusCardBaudRateA=BaudRateB=BaudRateC=BaudRateD=BaudRateE=设备类型4.2.附录2:各板卡功能块引脚定4.2.1.小模块Elink(单轴控制板卡4-4-0004.2.附录2:各板卡功能块引脚定4.2.1.小模块Elink(单轴控制板卡4-4-000电机0回零开始信号,与对应的电机0MC_HomebDone00SingleAxisi4-SingleAxisi4-0电机0回零状态:0:未回零;1:正减速反向;4Z0Z 4-000电机0MC_Home功能块使用同一输入MC_Home功能块的输出bDone014-000电机0MC_Home功能块使用同一输入MC_Home功能块的输出bDone01电机1回零开始信号,与对应的MC_Home功能块使用同一输入MC_Home功能块的输出bDone OFIO0DA00DA1000回零状态:0:未回零;1:开关,寻找Z向脉冲;8:回零结0000回零状态:0:未回零;1:开关,寻找Z向脉冲;8:回零结0Z001回零状态:0:未回零;1:开关,寻找Z向脉冲;8:回零结1Z OF配臵文件中板卡类型为EtherMAC_AxesII4-4-000配臵文件中板卡类型为EtherMAC_AxesII4-4-0000外部模拟量输出0(板卡输出到上000电机0回零开始信号,与对应的电机0回零结束信号,使用对应的MC_HomebDone作为输0100电机0回零开始信号,与对应的电机0回零结束信号,使用对应的MC_HomebDone作为输01电机1回零开始信号,与对应的电机1回零结束信号,使用对应的MC_HomebDone作为输02电机2回零开始信号,与对应的电机2回零结束信号,使用对应的MC_HomebDone作为输[0..15]OFIO0DA00DA100电机0回零状态:0:未回零;1:正在速反向;4:离开参考开关,寻找Z向0DA00DA100电机0回零状态:0:未回零;1:正在速反向;4:离开参考开关,寻找Z向0Z00电机1回零状态:0:未回零;1:正在速反向;4:离开参考开关,寻找Z向1Z0为0电机2回零状态:0:未回零;1:正在速反向;4:离开参考开关,寻找Z向为0电机2回零状态:0:未回零;1:正在速反向;4:离开参考开关,寻找Z向2Z[0..15]OF00004-4-4-4-000电机0回零开始信号,与对应的电机0回零结束信号,使用对应的MC_HomebDone作为输01电机1回零开始信号,与对应的00电机0回零开始信号,与对应的电机0回零结束信号,使用对应的MC_HomebDone作为输01电机1回零开始信号,与对应的电机1回零结束信号,使用对应的MC_HomebDone作为输02电机2回零开始信号,与对应的电机2回零结束信号,使用对应的MC_HomebDone作为输03电机3回零开始信号,与对应的MC_Home电机3回零结束信号,使用对应的MC_Home功能块的输出bDone作为输04电机4回零开始信号,与对应的MC_Home电机4回零结束信号,使用对应的MC_Home功能块的输出bDone作为输MC_Home电机3回零结束信号,使用对应的MC_Home功能块的输出bDone作为输04电机4回零开始信号,与对应的MC_Home电机4回零结束信号,使用对应的MC_Home功能块的输出bDone作为输[0..15]OFIOAD/DA0DA00DA100电机0回零状态:0:未回零;1:正在速反向;4:离开参考开关,寻找Z向0Z00电机1回零状态:0:未回零;1:正在速反向;4:离开参考开关,寻找Z向0Z00电机1回零状态:0:未回零;1:正在速反向;4:离开参考开关,寻找Z向1Z00电机2回零状态:0:未回零;1:正在速反向;4:离开参考开关,寻找Z向2Z00电机3回零状态:0:未回零;1:正在速反向;4:离开参考开关,寻找Z向3Z00电机3回零状态:0:未回零;1:正在速反向;4:离开参考开关,寻找Z向3Z00电机4回零状态:0:未回零;1:正在速反向;4:离开参考开关,寻找Z向4Z[0..15]OF000配置文件中板卡类型为EtherMAC_AxesV4.2.5.通用IO板(1、16IO功能4-4-0 OF]IOIO配置文件中板卡类型为EtherMAC_AxesV4.2.5.通用IO板(1、16IO功能4-4-0 OF]IOIOIOIOIOIOIOIOIO0配臵文件中板卡类型为IOCard_OUT16IO输出指的是板卡受上位机控制,由板卡输出信号,是针对实际物理板卡而言的。而将这些变量定义为输入变量是针对IOCard_OUT16模块而言的,该模块将上位机输(2、16IO功能4-4-0 IO输入,16IO配臵文件中板卡类型为IOCard_OUT16IO输出指的是板卡受上位机控制,由板卡输出信号,是针对实际物理板卡而言的。而将这些变量定义为输入变量是针对IOCard_OUT16模块而言的,该模块将上位机输(2、16IO功能4-4-0 IO输入,16IOIOIOIOIOIOIOIO配臵文件中板卡类型为IOCard_IN16IO输入指的是外部信号输入到板卡,并反馈到上位机,是针对实际物理板卡而言的。而将这些变量定义为输出变量是针对IOCard_IN16模块而言的,该模块将外部输入(3、88IO功能4-OF]IOIOIOIOIOIO配臵文件中板卡类型为IOCard_IN16IO输入指的是外部信号输入到板卡,并反馈到上位机,是针对实际物理板卡而言的。而将这些变量定义为输出变量是针对IOCard_IN16模块而言的,该模块将外部输入(3、88IO功能4-OF]IOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIO4-0ARRAY[0..7]IOIOIOIOIOIOIO0ARRAY[0..7]4-0ARRAY[0..7]IOIOIOIOIOIOIO0ARRAY[0..7]IOIOIOIOIOIOIOIO44-4-00IOIOIOIOIOIO44-4-00IOIOIOIOIOIO0IOIOIOIOIOIO配臵文件中板卡类型为StepMotorCard4-4-00DA100配臵文件中板卡类型为StepMotorCard4-4-00DA1000IOIOIO配臵文件中板卡类型为EncoderLocker485Modbus板4-4-00IOIO_In1IO_In2IO_In3IO_In配臵文件中板卡类型为EncoderLocker485Modbus板4-4-00IOIO_In1IO_In2IO_In3IO_In4Modbus返回值标志位,TRUE代表收到00配臵文件中板卡类型为FiveModbusCard0配臵文件中板卡类型为FiveModbusCard04-4-4-4-0ARRAY[0..31]OFUINT(CV((PP(CARRAY[0..31]OFUINT(CV((PP(CP(CT1(Home+Z编码器Z向信号进行回零操作。Z3(Home(Latch度进行运动,返回压下Home开关后第一个Z向信号的位臵。ARRAYOFARRAYO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家机关劳动合同样本合同
- 工厂保安用工合同
- 消防课程安全课件
- 智能仪器仪表智能医疗应用考核试卷
- 成人高考地理知识要点专项训练考核试卷
- 斯洛文尼亚网络广告竞争格局洞察考核试卷
- 文化用品租赁业务项目管理考核试卷
- 机场航站楼空气质量控制考核试卷
- 2024信息物理融合智能系统实施流程
- 资金筹划咨询合同范本
- TSG 07-2019电梯安装修理维护质量保证手册程序文件制度文件表单一整套
- 2025深圳劳动合同下载
- 设备损坏评估报告范文
- 标准和计量管理制度范文(2篇)
- 透析患者心理问题护理干预
- 孕前口腔护理保健
- 《民航服务与沟通学》课件-第1讲 服务与民航服务的概念
- 《大学生安全教育》课件 项目四 军事安全
- 10KV电力配电工程施工方案
- 智能感知工程基础知识单选题100道及答案解析
- 肌肉注射药物不良反应及预防措施研究
评论
0/150
提交评论