M241&251系列PLC与Lexium28系列伺服系统的CANopen现场总线通讯的实现需要的硬件以及相应软件,CANopen通讯线缆以及编程电缆等,如下:硬件:TM241CEC24TPLC一套,如下:Lexium28(以下简称为LXM28)伺服系统一套,如下:软件:SoMachineV4.1SP2,如下:M241与M251系列PLC与LXM28的CANopen通讯接口、配置、编程等基本一致,本例中以M241PLC为主来进行介绍1、Lexium28的参数设置P3-05=1;CANopen站号为1P3-01=0403;CANopen通讯波特率为1MP1-01=0b;控制模式为CANopenP1-55=伺服电机的最高转速;设置为伺服电机的最高转速其他参数请根据现场情况来进行调整,如P1-34参数(加速时间)等,本例中只介绍CANopen通讯的实现方法,不再做详细的参数设置说明,详细参数设置请参考LXM28的操作手册当改变以上参数的设定值时,按下ENT键直至设定值闪烁之后再松开,则该数值被存储在对以上参数设置完成后,将LXM28断电,等待显示面板没有任何显示时再重新上电,此时面板上的CAN指示灯会有状态指示2、CANopen通讯接线PLC的CANopen通讯端口定义,如下:M241与M251PLC内置有CANopen的终端电阻,可通过拨码开关来选择是否使用,如下:3、LXM28的CANopen通讯端口4、M241PLC与LXM28的CANopen通讯线连接M241PLCLXM28CAN_H----------------CAN_HCAN_L----------------CAN_LCAN_GND----------------CAN_0VCAN_SHLD----------------SHLD5、SoMachineV4.1硬件组态首先,新建一个TM241CEC24T的PLC,如下:双击MyController,对启动方式进行设置,如下:双击CAN_1,设置CANopen的通讯速率为1M,如下:右单击CAN_1,添加一个新设备,如下:添加CANopenPerformance主站,如下:添加完成后,如下:右单击CANopen_Performance并选择添加设备,如下:添加完成后,如下:双击Lexium_28,设置相关参数,如下:设置节点地址为1,如下:如果需要初始化设置参数,则可添加在服务数据对象中,如下:在CANopen通讯中,可以通过设置Feed与ShaftRevolutions两个参数来定义伺服电机的每转应用单位数,注意,这个地方是自由定义的应用单位,本例中Feed设置为10000,ShaftRevolutions设置为1,则表示10000个应用单位,伺服电机旋转1转16#420A:16#00~16#4211:16#00对应P2-10~P2-17的参数功能,即DI输入信号的功能定义,可参考LXM28的操作手册来进行初始化的设置,或者直接在LXM28中设置,而不在此服务数据对象中进行初始化MaxAcceleration与MaxDeceleration为最大加速度与最大减速度,单位为units/s2ProfileAcceleration与ProfileDeceleration为操作模式下的加速度与减速度,单位为units/s2QuickstopDeceleration为快速停止模式下的减速度,单位为units/s26、SoMachineV4.1程序编程在Application中,添加一个POU,并选择为CFC编程语言,如下:添加完成POU后,如下所示,点击POU并拖拽至MAST任务下,如下:7、如何在程序中添加控制功能块在工具箱中选择Box,并放在POU中,如下:点击“???”并点击右侧的按钮,选择所需要输入的功能块名称,如下:8、LXM28在CANopen控制下的各个功能块的应用在LXM28的控制功能块中,所有的功能块必须使用SEM_LXM28.的前缀,否则编译时报错,如下:获取从站通讯状态功能块在控制LXM28之前,我们通常会判断CANopen从站的通讯状态,用作控制LXM28使能或读取参数的先决条件;多个从站时应使用多个此功能块,用来获取不同从站的通讯状态NETWORK:网络ID,默认为1ENABLE:激活功能块TIMEOUT:功能块执行超时时间,单位:msDVICE:读取从站通讯状态的站号,本例中为1CONFIRM:功能块执行完成ERROR:功能块执行错误STATE:读取从站通讯状态,当从站处于正常通讯状态时,STATE=5在以下所有功能块中,位置单位为units,速度单位为units/s,加速度单位为units/s2,减速度单位为units/s2使能功能块Axis:功能块所控制的轴,本例中轴的名称为Lexium_28,因此写入此名称Enable:轴使能输入信号,可判断从站通讯状态后再根据程序条件进行使能Status:轴使能完成信号Error:轴使能报错信号故障复位功能块Axis:功能块所控制的轴Execute:触发功能块输入信号Done:功能块执行完成信号Busy:功能块执行过程中信号Error:功能块执行错误信号停止功能块Axis:功能块所控制的轴Execute:触发功能块输入信号Done:功能块执行完成信号Busy:功能块执行过程中信号Error:功能块执行错误信号CommandAborted:功能块被中断信号设置位置功能块Axis:功能块所控制的轴Execute:触发功能块输入信号Position:设置位置值Relative:TRUE:输入Position的位置被叠加至轴的实际位置;FALSE:输入Position的位置被设置为轴的实际位置Busy:功能块执行过程中信号CommandAborted:功能块被中断信号Error:功能块执行错误信号Done:功能块执行完成信号原点回归功能块Axis:功能块所控制的轴Execute:触发功能块输入信号Position:位置值,详细描述如下:HomingMode:原点回归模式,详细描述如下:亦可参考《施耐德电气SoMachine控制器应用技巧120例》一书,书中有详细的原点回归动作说明VHome:查找原点的目标速度,详细描述如下:VOutHome:离开原点的目标速度,详细描述如下:Busy:功能块执行过程中信号CommandAborted:功能块被中断信号Error:功能块执行错误信号Done:功能块执行完成信号点动功能块Axis:功能块所控制的轴Done:功能块执行完成信号Busy:功能块执行过程中信号CommandAborted:功能块被中断信号Error:功能块执行错误信号速度控制功能块Axis:功能块所控制的轴Execute:触发功能块输入信号Velocity:目标速度Busy:功能块执行过程中信号CommandAborted:功能块被中断信号Error:功能块执行错误信号InVelocity:已到达目标速度信号此功能块在Execute输入信号为FALSE时,轴仍以该功能块的目标速度运行,直至被错误终止或通过SEM_LXM28.MC_Stop_LXM28功能块停止相对定位功能块Axis:功能块所控制的轴Execute:触发功能块输入信号Distance:相对定位模式下的目标位置Velocity:目标速度Busy:功能块执行过程中信号CommandAborted:功能块被中断信号Error:功能块执行错误信号Done:定位完成信号绝对定位功能块Axis:功能块所控制的轴Execute:触发功能块输入信号Position:绝对定位模式下的目标位置Velocity:目标速度Busy:功能块执行过程中信号CommandAborted:功能块被中断信号Error:功能块执行错误信号Done:定位完成信号此功能块必须在建立了绝对坐标以后才可使用,因此,在执行前必须执行SEM_LXM28.MC_Home_LXM28或SEM_LXM28.MC_SetPosition_LXM28功能块之后才可执行位置捕捉功能块Axis:功能块所控制的轴Execute:触发功能块输入信号Unit:设置为1时,使用捕捉输入信号1,即DI7,P2-16参数需设置为16#11C;设置为2时,使用捕捉输入信号2,即DI6,P2-15参数需设置为16#11DDone:功能块执行完成信号Busy:功能块执行过程中信号CommandAborted:功能块被中断信号Error:功能块执行错误信号Valid:功能块正常执行信号RecordedPosition:捕捉的位置值读取轴错误功能块Axis:功能块所控制的轴Enable:功能块使能信号,可判断从站通讯状态后再根据程序条件进行使能Valid:功能块正常执行信号Busy:功能块执行过程中信号Error:功能块执行错误信号ErrorID:错误代码,详细描述如下:ErrorFB:对应识别出错误的功能块的层级名读取轴状态功能块Axis:功能块所控制的轴Enable:功能块使能信号,可判断从站通讯状态后再根据程序条件进行使能Valid:功能块正常执行信号Busy:功能块执行过程中信号Error:功能块执行错误信号读取轴运动状态功能块Axis:功能块所控制的轴Enable:功能块使能信号,可判断从站通讯状态后再根据程序条件进行使能Valid:功能块正常执行信号Busy:功能块执行过程中信号Error:功能块执行错误信号读取轴的输入信号状态功能块Input:功能块所控制的轴Enable:功能块使能信号,可判断从站通讯状态后再根据程序条件进行使能InputNumber:读取的DI点的编号,设置1-8对应DI1-DI8点Valid:功能块正常执行信号Busy:功能块执行过程中信号Error:功能块执行错误信号Value:读取的DI点的状态,TRUE:高电平,FALSE:低电平Inputs:所有输入点的状态,WORD,Bit0-7对应DI1-DI8点的状态,TRUE:高电平,FALSE:低电平读取轴的实际位置功能块Axis:功能块所控制的轴Enable:功能块使能信号,可判断从站通讯状态后再根据程序条件进行使能PositionType:位置类型,0:电机的实际位置;1:运动曲线的给定位置;2:目标位置Valid:功能块正常执行信号Busy:功能块执行过程中信号Error:功能块执行错误信号Position:读取的位置值读取轴的实际速度功能块Axis:功能块所控制的轴Enable:功能块使能信号,可判断从站通讯状态后再根据程序条件进行使能VelocityType:速度类型,0:电机的实际速度;1:运动曲线的给定速度Valid:功能块正常执行信号Busy:功能块执行过程中信号Error:功能块执行错误信号Velocity:读取的速度值读取轴的实际扭矩功能块Axis:功能块所控制的轴Enable:功能块使能信号,可判断从站通讯状态后再根据程序条件进行使能TorqueType:扭矩类型,0:电机的实际扭矩;1:运动曲线预设的扭矩;2:运动曲线的目标扭矩,单位:0.1%Valid:功能块正常执行信号Busy:功能块执行过程中信号Error:功能块执行错误信号Torque:读取的扭矩值,-3000,~3000,代表-300.0%~300.0%额定扭矩写入轴的任意参数功能块Axis:功能块所控制的轴Execute:功能块触发信号,可判断从站通讯状态后再根据程序条件进行触发Done:功能块执行完成信号Busy:功能块执行过程中信号Error:功能块执行错误信号读取轴的任意参数功能块Axis:功能块所控制的轴Enable:功能块使能信号,可判断从站通讯状态后再根据程序条件进行使能Done:功能块执行完成信号Busy:功能块执行过程中信号Error:功能块执行错误信号Value:读取的参数值Length:读取参数的字节长度9、如何获取帮助信息在SoMachineV4.1SP2的帮助文件中,可参考以下路径的目录获取相应的支持