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

相关推荐
Aloudata3 天前
高并发指标中台选型:Aloudata CAN 横向扩展与架构稳定性深度评估
数据库·架构·数据分析·etl·指标平台
Aloudata3 天前
数据工程实践:Aloudata CAN 如何通过 NoETL 实现真·管研用一体?
大数据·数据分析·数据治理·etl·指标平台
charlie1145141913 天前
嵌入式C++教程——ETL(Embedded Template Library)
开发语言·c++·笔记·学习·嵌入式·etl
Aloudata4 天前
数据工程实践:NoETL 指标平台落地周期与人力投入深度测算
数据分析·etl·指标平台
星沙丘秋4 天前
Kettle9入门、使用经验与5个问题
数据库·sql·etl
铬仁4 天前
kettle 9.2 连接达梦DM Database Server 64 V8
数据库·etl
Aloudata5 天前
数据工程指南:指标平台选型避坑与 NoETL 语义编织技术解析
sql·数据分析·自动化·etl·指标平台
WJX_KOI5 天前
保姆级教程:Apache Seatunnel CDC(standalone 模式)部署 MySQL CDC、PostgreSQL CDC 及使用方法
java·大数据·mysql·postgresql·big data·etl
Zilliz Planet5 天前
<span class=“js_title_inner“>Spark做ETL,与Ray/Daft做特征工程的区别在哪里,如何选型?</span>
大数据·数据仓库·分布式·spark·etl
Aloudata5 天前
存量数仓宽表治理:基于 NoETL 语义编织实现指标统一管理
大数据·sql·数据分析·自动化·etl·指标平台