利用IEC61131-3和PLCopen的运动控制功能块来创建独立于硬件的可再用运动控制应用程序摘要运动集成及自动化解决方案的可维护性和连通性这些问题已经出现,因此需要建立标准。PLCopen建立了这样的标准。编程语言的标准是来协调各工作平台间运动控制功能性的访问。这样,生成的应用程序在工作平台间更独立于硬件而且可再度利用。PLCopen运动控制功能块提供的标准以IEC61131-3功能块概念为基础。随着功能性和接口的标准化及在多个平台上执行,建立了编程标准,并在工业领域被广泛支持。由于封装隐藏了数据,此标准可用于不同结构,适用的控制从集中型到分散型或从集成型到网络型。它不是为某个应用程序特别设计的,而是可以作为在不同领域中正进行定义的基础层。正因为如此,它对现有和将来的技术都是开放的。介绍在很多情形中运动控制系统的用户支持多个应用层。例如,一个包装机供应商可支持三个不同层次:低成本、中等层次和高性能/高成本。使用不同的运动控制系统可解决速度和精确度的不同需求。不幸的是,运动控制市场显示各种系统/解决方案的不兼容。实际上,这意味着结构和用于开发、安装和维护的软件工具的各个层次存在很大的差异。这种不兼容性带来了相当大的费用:使用不同的实现设备发生混乱,工程变得困难,培训费用增加,软件在各平台间不能再次使用。标准化自然减少了以上提到的消极要素。标准化不仅适用于IEC61131-3国际标准这样的编程语言中,而且适用于不同的运动控制解决方案(如分散型、集成型或集中型)的接口。这种标准化可有效地用于定义可再用部件的资料库。这样,编程更独立于硬件,应用软件的可再用性增加,培训和维护的费用减少,不同控制解决方案间的应用程序可伸缩。任务工作小组的目标机器制造业的主要供应商请求PLCopen帮助解决不兼容的问题,因此组建了运动控制的任务工作小组。通过使运动控制的功能块标准化,此任务工作小组定义了程序员接口。不仅用户包括在其中,还得到供应商的广泛支持,为很多产品和结构提供了大量实现设备,因而保证了此资料库的成功。独立的协会PLCopen于2001年11月在它的网站上发布了功能块资料库的定义。组织成员还将继续进行修改。该定义包括顺应性规则,将来会由PLCopen进行认证。标准化主要关注不同供应商提供的不同系统之间的可再用性,包括分布型和网络型系统。总之,预计标准化将覆盖运动控制市场的百分之八十左右。任务工作小组定义了运动控制功能块概念有以下几个目标:1.简单性—容易编写应用程序、安装和维护2.效率性—体现在功能块的数量和设计效率上3.一致性—符合IEC61131-3标准4.通用性—独立于硬件5.灵活性—将来的扩展/应用范围6.完全性—不是强制性的但很充分定义包括三个部分:1.状态机的定义2.用于单轴/多轴运动控制的基本功能块集的定义3.顺应性规则和综述状态机的定义下图标准地定义了多个运动控制FB同时启动时轴在高层次的行为特性。运动的这种组合对建立更复杂轮廓或处理程序中的一些例外很有用。(在实际实现过程中,可能有在较低层的附加状态。)基本规则是按顺序发出运动命令,即使PLC具有实时并行处理的能力。这些命令作用于轴状态图上。轴总是在定义的状态中的一种状态下。任何运动命令都是一种转换,它改变轴的状态,因此改变当前计算出的运动。定义了七种状态1.保持静止2.回原位3.离散运动4.持续运动5.同步运动6.停止7.故障停止正常过程都从静止开始。在此状态下,每个轴都可连通电源(通过供电命令)。而且可以访问回原位状态(通过对每个轴发布回原位命令),正常完成后返回静止状态。从这里可以将轴转成离散运动或持续运动。通过停止状态可以返回到静止。发生故障时轴将转换为故障停止状态。通过重启命令(人工操作)可以返回到静止,接下来机器可以再次进入运行状态。请注意这些状态都定义了功能块的功能性。功能块集的定义功能块的粒度是基本问题。对应于低层次命令的功能性而言,每个轴至少有一个功能块。一个中间层更好地实现了以上的要求,减轻处理器的负载并创建了更高水准的可伸缩性。运行就是在此层次的基础上进行。而且,为了将来的扩展定义两个功能块输入和输出集:一个必须遵守的基本集和一个扩展集。轴的数据类型及实例导出数据类型AXIS_REF提供轴的索引。所有制造商都提供这种数据类型。它还为电机/驱动器提供接口。实接口的技术性隐藏在结构和功能块中。这样,当用户访问所有相关参数时,不同的结构看起来是一样的。这种结构包括集成于控制器的运动、集成于驱动器的控制、分布型和网络型系统。AxisRef作为Var_In_OutAxis_Ref作为Var_In_Out使用,表示在功能块图形中的水平线连接的一个输入和一个输出。输入/输出变量值存储于FB的外部。Axis_Ref使用的变量表现为输入和输出参数,可以在功能块内修改,以及从外部变量接收数值举例说明如何进行这个操作:设想一个程序包括很多功能块,所有的功能块都彼此相连(从左至右),都通过Axis_Ref参照到同一个轴。此程序是在一个循环任务模式中,比如每一个毫秒。第一个FB读取Axis_Ref中的最新值,并在完成执行前可能更新其中一些值。紧接着下一个FB开始运行,读取Axis_Ref中已更新的值,也就是使用最新值。这些值耦合到电机。系统间的控制结构完全不同。可以使用此索引定义一个或更多虚拟轴,在这个意义上,它作为数据结构出现,没有耦合到物理的驱动器或电机。MC_MoveAbsolute在一个指定的绝对位置命令被控运动。MC_MoveRelative在执行时,命令指定距离的被控运动,此距离与实际位置有关。MC_MoveAdditive除了在离散运动状态下原始命令的位置,命令一个指定相关距离的被控运动。如果FB在持续模式下启动,在执行时指定的相关距离被加入到实际位置。MC_MoveSuperimposed除了已有的运动,命令指定相关距离的被控运动。已有的运动不被中断,而是叠加运动。MC_MoveVelocity命令在特殊速率下的不停止的被控运动。MC_Home命令轴执行“回原位搜索”顺序。此顺序的细节由制造商决定,并由轴的参数设置。当检测到参照信号时,位置输入用于设置绝对位置。在静止时完成此操作。MC_Stop命令被控运动停止,将轴转换为“停止”状态。它会中止任何进行中的功能块的执行。使用“Done”输出,可转换为静止状态。当轴处于“停止”状态时,其他的FB不可以在这个轴上执行任何运动。MC_Power控制电源(开或关)。MC_ReadStatus返回到相应于当前正在进行运动的轴的详细状况。MC_ReadAxisError显示与功能块无关的故障。MC_Reset通过复位所有内部与轴有关的故障和清除悬挂的命令,实现从故障停止状态到静止状态的转换。它不作用于FB实例的输出。MC_ReadParameter&MC_ReadBoolParameter返回到供应商的专用参数值。如果有必要的话,返回值必需转换为实数。若不能的话,供应商需提供一个由其规定的独立的FB。MC_WriteParameter&MC_WriteBoolParameter修改供应商专用的参数值。MC_ReadActualPosition返回到实际位置。MC_PositionProfile命令一个时钟位置以锁定运动的轮廓图。MC_VelocityProfile命令一个时间速率以锁定运动的轮廓图。MC_AccelerationProfile命令一个时间加速度以锁定运动的轮廓图。多轴功能块的通用设备针对多轴协同运动定义了一个小型的功能块集。附加的应用特定的资料库扩展了该功能块集。目前已定义的功能块有:CamTableSelect通过在相关表格上设置指针来选择CAM(凸轮)表格。Camln啮合CAM。CamOut立即脱离对主轴的啮合。GearIn命令从轴和主轴间的速度比。GearOut从轴脱离对主轴的从属。连续功能图使用顺序功能图(SFC)实现顺序步的技术要求是较传统的方法。SFC再配置了时序图。包括以下几个步骤:第一步:启动,例如打开电源第二步:向钻孔位置移动,钻头开始旋转。这样在到达指定位置前就能完全进入运行状态,然后检验是否完成这两项操作。第三步:钻孔第四步:钻孔结束后,需等待一系列的连续操作以清除孔中的填充物。第五步:钻头返回起始位置,关闭主轴。完成返回移动和停止主轴两者,这时我们可以重新启动一系列步骤。认证顺应性规则和认证也包括在文件中。基本上是自认证,根据每个供应商发布在PLCopen网站上的结果。被认证的公司允许使用下面的图标,并附上编号、日期和所支持的顺从性功能块的数量。任务工作小组目前的结果此文件于2001年11月发布。它包括以上提到的所有要素。而且,第一批实现设备已完成,提升了此标准的质量。对实时行为进行了调查,映象到IEC61131-3环境。由于它多任务的性质而且时间同步,实现时对目标硬件提出了附加要求。随着覆盖了大量运动应用系统,我们意识到第一版本不会是最后的版本。特殊应用领域的资料库将在此基本规则的基础上建立。首先是包装应用系统,例如直线和循环插补以及与多轴设备的混合。结论第一版本的定稿和第一批的实现都清楚地表明出多轴的实现设备适合有IEC61131-3标准定义的架构。这就是说虽然预计该标准的一些实现不是很适合复杂的任务,但标准本身不会约束运动控制功能块集。功能块集的首次执行已经完成。从此,运动控制将不再以相同面貌出现:更多的独立于硬件使用户的培训费用减少,更容易创建完成不同目标的应用软件,这种软件可以在机器开发全过程中的后期被选用。这将带来更高的效率,而且在开发、维护和培训期间减少费用。