PLC编程
程序架构
本案例中使用的程序块如图5所示:
MAIN:主程序
HSC0_FillingNeedle:灌装针高速计数器初始化程序,在MAIN中调用一次。HSC0的计数值用于计算灌装针实际的运行位置,根据CatchUpTimeMeasureSBR87程序的mode模式设置,可选择使用或者不使用HSC0。
HSC2_BeltPosition:传送带高速计数器初始化程序,在MAIN中调用一次。HSC2的计数值用于计算传送带前进的距离,根据FillingSBR88程序的mode模式设置,可选择使用或者不使用HSC2。
AxisCtrl:轴0的基本控制指令在AxisCtrl中调用
CatchUpTimeMeasure:测量灌装针从启动,到运行至灌装起始点所需要的时间t。在定时中断程序Time_Interrupt中调用,对应特定的传送带速度给定值,通常只调用一次,测量得到时间t即可。
Filling:根据CatchUpTimeMeasure测得的时间t,结合传送带的线速度,生成灌装针启动命令。Filling在定时中断程序Time_Interrupt中调用。
Time_Interrupt:1ms定时中断程序。

图5
程序调用架构如图6所示

图6
核心程序块
本应用案例的核心程序块为CatchUpTimeMeasure和Filling。这两个功能块都在1ms定时中断Time_Interrupt中调用
CatchUpTimeMeasure

图7

表1 程序块引脚
Filling

图8

表2 程序块引脚
本应用案例中的程序块CatchUpTimeMeasure和Filling,可以作为单独的库程序使用,作为库程序使用时,这两个程序块内部使用了68个字节的V区数据。
在本案例中,直接使用了这两个程序块,不是作为库程序使用。这两个程序块使用了从VB4000到VB4067这68个字节。
内部使用的V区定义

表3