omron欧姆龙NJ/NX程序 欧姆龙NJ501-1300,欧姆龙NB系列触摸屏,分布式总线控制

omron欧姆龙NJ/NX程序 欧姆龙NJ501-1300,欧姆龙NB系列触摸屏,分布式总线控制,CJ1W-DRM21模块通信主从站控制。 全自动马达电机组装机,整机采用EtherCAT总线网络节点控制, 欧姆龙R88D系列总线伺服,发那科机器人网络通信控制,CCD视觉位置控制,压力控制。 机器人与伺服轴模组速度位置同步控制功能。 等等 触摸屏产量统计功能,触摸屏在线修改账号功能。 涵盖人机配方一键换型功能,故障记录功能,st+梯形图编写,注释齐全。 #Omron/欧姆龙

最近在调试一套全自动电机组装设备,用到了欧姆龙NJ501-1300控制器搭配R88D总线伺服,顺手记录几个有意思的技术点。这系统最带劲的是用EtherCAT总线把20多个轴捆在一起玩同步,机器人、视觉和压力检测全往总线上挂,比传统脉冲控制利索多了。

先说总线配置,NJ控制器作EtherCAT主站时,轴参数配置直接上结构体:

structured_text 复制代码
AxisConfig : ARRAY[1..24] OF ST_AxisConfig;
AxisConfig[1].iSlaveNo := 1;  //R88D伺服节点
AxisConfig[1].fGearRatio := 10.0;
AxisConfig[1].iDirection := -1;  //电机转向

这配置块里藏着伺服的核心参数,尤其是电子齿轮比设置。之前有个坑,机械工程师给的减速比是10:1,结果忘了这里还要乘上伺服自带的减速比,导致同步运行时直接干废了俩联轴器...

速度位置同步是重头戏,用ST写的双轴追标程序:

structured_text 复制代码
MC_Power(Axis:=Axis1, Enable:=TRUE, Status=>stPower);
MC_GearIn(Master:=RobotAxis, Slave:=ServoAxis, Ratio:=1.0, Absolute:=FALSE);
IF VisionOffset <> 0 THEN
    MC_MoveRelative(ServoAxis, VisionOffset, 100.0); //视觉纠偏
END_IF

这里用了欧姆龙的MC函数库,注意GearIn指令的Ratio参数实际是速度比例系数。调试时发现当主从轴减速比不同时,这个系数要反向计算,比如机械总减速比是5:1,这里反而要填0.2。

触摸屏在线改账号这功能挺实用,NB系列HMI的脚本有点意思:

vbnet 复制代码
Sub ChangePassword()
    If CurrentLevel = 3 Then  //工程师权限
        UserDB(SelectedID).Password = NewPass 
        WriteToPLC("D100", UserDB)  //直接写PLC数据块
    End If
End Sub

但要注意密码字段得做异或加密,之前直接明文传输被甲方安全审计抓包。现在改成:

structured_text 复制代码
EncryptedPass := STRING_TO_BLOCK(UserPass) XOR 0xA5A5;

配方换型功能用结构体数组实现挺合适:

structured_text 复制代码
TYPE T_Recipe :
STRUCT
    fSpeed : REAL; 
    iCount : INT;
    sMaterialCode : STRING(16);
END_STRUCT
VAR
    RecipeDB : ARRAY[1..10] OF T_Recipe;
    CurrentRecipe : T_Recipe;
END_VAR

换型时直接整块数据搬运:

structured_text 复制代码
CurrentRecipe := RecipeDB[iSelectedIndex];

比单个变量赋值快得多,特别是当配方参数超过50个时,用结构体直接memcpy是真香。

最后说个故障记录的坑点,时间戳处理要小心:

structured_text 复制代码
FaultLog[iLogIndex].tTimestamp := NOW(); //获取PLC当前时间
FaultLog[iLogIndex].iErrorCode := iActiveError;
iLogIndex := iLogIndex MOD 100 +1;  //循环存储

原本用DATEANDTIME类型存时间,结果触摸屏解析时卡成狗。后来换成Unix时间戳格式,HMI端用脚本转换,流畅度直接起飞。

这套系统最爽的是在线修改功能,EtherCAT总线热插拔确实给力。上周现场改视觉定位参数,直接在线更改变量偏移量,设备愣是没停机就把活干完了,甲方老头儿看得直瞪眼。不过总线拓扑结构得提前规划好,别像我第一次布线时把视觉控制器接在伺服节点后面,信号延迟差点让同步精度翻车...

相关推荐
zgl_200537792 天前
源代码:ZGLanguage 解析SQL数据血缘 之 显示 WITH SQL 结构图
大数据·数据库·数据仓库·sql·数据治理·etl·数据血缘
且去填词5 天前
DeepSeek :基于 Schema 推理与自愈机制的智能 ETL
数据仓库·人工智能·python·语言模型·etl·schema·deepseek
weixin_4462608511 天前
[特殊字符] Pathway:高效的Python ETL框架,助力实时数据处理与分析
开发语言·python·etl
zgl_2005377912 天前
ZGLanguage 解析SQL数据血缘 之 提取子查询语句中的源表名
大数据·数据库·数据仓库·hive·hadoop·sql·etl
、BeYourself15 天前
Spring AI ETL Pipeline Transformers 详细指南
人工智能·spring·etl·springai
一只大侠的侠16 天前
数据工程新范式“从ETL到ELT的平滑迁移实战指南”
数据仓库·etl
zgl_2005377917 天前
ZGLanguage 解析SQL数据血缘 之 提取select语句中的源表名
大数据·数据库·c++·数据仓库·sql·数据库开发·etl
奥利文儿19 天前
【虚拟机】Ubuntu24安装Miniconda3全记录:避坑指南与实践
大数据·数据仓库·人工智能·数据库开发·etl·虚拟机·etl工程师
weixin_307779131 个月前
Jenkins Pipeline: Input Step插件详解与实践指南
运维·开发语言·自动化·jenkins·etl