Codesys平台实现电子凸轮功能二:电子凸轮程序编写

本文链接:https://blog.csdn.net/weixin_54353890/article/details/132489667

程序块编写

双击程序块PLC_PRG,进入程序块界面。

上方可定义局部变量(仅适用于该程序块)和对功能块声明。

下方为程序,其中VAR到END_VAR之间的区域为该程序块的局部变量,如果要在外部使用要使用全局变量

在程序区,右键单击输入助手

可在类别中直接调用,同时在Application-->添加对象-->POU-->函数/功能块 编写好会自动添加到类别当中。

点击文本搜索,搜索框上输入关键字,可快速找到想要的功能块。

 

 1)首先要为主从轴提供电源,使能轴,输入助手文本搜索MC_Power,双击该功能块自动添加到程序中。

此时,程序中的MC_Power会有红色波浪线,报错。除了必要的输入未定义外,还要在上方的局部变量框上进行声明(VAR和END_VAR之间),同时对其取别名(可以理解为MC_Power为类型,别名为该类型的变量)。同一个功能块多次调用取多个别名时,用逗号隔开即可,如下:

 

MC_Power_1作为主轴使能,MC_Power_2作为从轴使能,将再将输入(:=为输入,=>输出)补上波浪线就会消失,如下。

2)控制主轴动起来,MC_Jog正反转点动功能块。同理,输入助手搜索双击,再声明,命名为MC_Jog_1。

输入主轴,正转(需要给一个上升沿信号,定义一个BOOL变量给定),速度为10(可自行定义一个变量来更改),加速度为100,减速度为100,其它无则如下:

3)凸轮表选择

右键输入助手,文本搜索MC_CamTableSelect,声明,定义别名。

输入:主轴、从轴,Cam表名称,触发信号(定义BOOL变量给定),有周期性,根据上面的主从轴坐标系确定,选择相对坐标(这个点相对上一个点的坐标,例如a(200,0)--->b(100,0)

b点相对坐标(-100,0),绝对坐标(100,0)) SlaveAbsolute=FLASE相对坐标,则MC_CamIn_1.StartMode=relative

 

4)凸轮表耦合

右键输入助手,文本搜索MC_CamIn,声明,定义别名,定义上升沿触发信号BOOL类型变量v_b_camin(自定义)。

输入:主从轴,触发信号,主从轴位置不偏移,不缩放,相对坐标,CamTableID为凸轮表选择输出ID。则

 

5)凸轮表解耦

右键输入助手,文本搜索MC_CamOut,声明,另起名,定义触发信号BOOL类型变量(v_b_camout),上升沿有效。让从轴解耦。

6)从轴解耦后仍在运行,用MC_Stop可使其停止

从输入助手中拉出,声明,另命名,配置为从轴,触发信号BOOL变量,减速度大小。

7)挺杆ID状态值获取

右键输入助手文本搜索SMC_GetTappetValue,声明,另命名。对挺杆进行映射(MC_CamIn.Tappets),初始化MC_CamIn.Tappets的输出值为bInitValue的设定值。

 所用到的声明及BOOL变量

 

编译一次。

4)跟踪

编译不报错,建立跟踪。Application-->添加对象-->跟踪...

 跟踪名称默认即可,也可自定义,后打开

 

添加跟踪变量 

 

 

 跟踪主轴位置,输入AXIS_MASTER.fset,选择fsetPosition双击添加成功

 

 继续添加新的跟踪变量,从轴位置

 

 

继续添加变量,第三个跟踪变量:跟踪挺杆状态。

点击三个小点

 

 依次点击小加号展开

 

 点击SMC_GetTappetValue_1的小加号展开,双击bTappet添加成功。

 

 右侧点击Trace,跟踪任务选择。默认是不选的需要手动,不然编译报错。

 

 回到跟踪页面,设置成多通道

 

  1. 虚拟主从轴设置

双击虚拟主轴、从轴,设置成模态,值360

 

6)仿真测试

在线-->点击仿真,进入仿真模式。

再编译一次

 登录下载

点击登录到,弹窗选择是 

 回到跟踪图形界面,右键点击下载跟踪。

下载跟踪之后切换到程序块

启动仿真

 

 

先点动,给出上升沿TRUE信号

双击右边的FALSE自动取反且作为准备值(BOOL类型自动取反,变量值双击修改)

 写入准备值:调试-->写入值  或者空白处鼠标右键-->写入全部值

 

写入后

 

 选择凸轮表

写入

 

这边在哪边耦合都一样,在相对模式下都是在耦合开始那个点作为主轴的零点,从轴从零点开始动作

Cam表设置,有偏差

耦合

写入

 

观察跟踪图,主轴和从轴位置是否和Cam上的大致相同 

 

解耦从轴会以原速度运行,MC_stop可以使其停止。

必要时可以进行冷复位,再试

 

或者略微修改程序,重新编译,选择登陆并下载