汇川H3U标准程序,程序有本体脉冲控制的三轴定位,有总线控制的汇川伺服定位,轴点动,回零,相对定位绝对定位,程序结构清晰,分模块控制,是工控者学习的好案例。

最近在搞汇川H3U的项目时,发现它的标准程序框架特别适合拿来当教材。尤其是那个脉冲轴和总线轴混搭的三轴定位方案,把传统脉冲控制和现代总线伺服玩得明明白白。咱们直接上干货,看看这套程序怎么做到既稳定又灵活。

先说脉冲轴的控制,核心是H3U内置的PLSR指令。这个指令用起来确实比老式PLC的脉冲指令顺手多了:

LD M0        //启动绝对定位
PLSR D100 K5000 Y0

D100存目标位置,K5000是最高输出频率,Y0对应脉冲输出口。重点是这个指令会自动计算梯形加减速曲线,不像以前得自己写S曲线算法。但要注意基板上的Y0/Y1硬件口必须对应轴号,接错线直接罢工。

总线轴那边用到了SV660N伺服,组态配置里藏着个关键参数:

AxisParam[1].GearRatio := 10000; //电子齿轮比
AxisParam[1].MoveMode := 2;      //绝对定位模式

这里电子齿轮比设置要是算错了,设备能给你表演原地蹦迪。遇到过新手把分子分母填反,结果伺服转得比陀螺还快,急停都来不及触发。

点动功能是设备调试必备,程序里用到了双线圈互锁:

LD X10       //正转按钮
AN X11       //互锁反转信号
OUT Y10      //正转输出

LD X11       //反转按钮
AN X10       //互锁正转信号
OUT Y11      //反转输出

这种结构比用SET/RST指令更可靠,特别是应对按钮卡死的情况。不过得注意PLC扫描周期的问题,点动速度太快时可能会丢脉冲。

汇川H3U标准程序,程序有本体脉冲控制的三轴定位,有总线控制的汇川伺服定位,轴点动,回零,相对定位绝对定位,程序结构清晰,分模块控制,是工控者学习的好案例。

回零程序最有意思的是这个搜索原点的方式:

IF HomeStatus = 1 THEN
    Servo_Home(1, 3, 100.0, 50.0);
    //轴号1,模式3(先找Z相再找极限),高速100mm/s,低速50mm/s 
END_IF

模式3适合带机械限位的设备,先快速撞到限位开关,再慢速退回找Z相信号。调试时记得在伺服驱动器里把Z相脉宽调大点,不然容易错过信号。

程序结构最值得夸的是模块化设计,主程序就几行:

CALL Axis_Init    //轴初始化
CALL Manual_Mode  //手动模块
CALL Auto_Mode    //自动模块
CALL Alarm_Handle //报警处理

每个模块对应独立的子程序,改某个功能时不用在几千步程序里大海捞针。特别是报警处理模块,用状态编码器实现故障分级:

CASE AlarmCode OF
    1001: ErrMsg := "伺服使能异常";
    1002: ErrMsg := "超程报警";
    2001: ErrMsg := "气源压力不足"; 
END_CASE

这种设计比用M继电器做标志位直观多了,维护时看HMI报警代码直接对应处理方案。

最后说下绝对定位和相对定位的选择技巧,程序里用了个巧妙的模式切换:

MOV K1 D200    //D200=1时绝对定位
MOV K0 D200    //D200=0时相对定位

CMP D200 K1
= MOV D100 D101  //绝对模式用预设坐标
<> MOV D102 D101 //相对模式用偏移量

通过一个标志位切换数据源,比写两套程序省事。但要注意坐标系的转换,特别是存在多个参考点时容易搞混坐标系数据。

这套程序最牛的地方在于它把工控项目的常见坑都提前填平了。比如总线伺服的通信超时处理,脉冲轴的丢脉冲检测,甚至考虑了紧急停止时的动态减速。建议新手直接拿这个框架魔改,比看十本教科书都管用。下次可以聊聊怎么在这个框架上加视觉定位功能,那又是另一个层面的折腾了。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐