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

相关推荐
骑着蜗牛撵大象32711 天前
字节序、TLV 到 netlink:Linux 网络消息的编解码全链路
linux·网络·php·etl·序列化·字节序·tlv
RestCloud16 天前
数据同步零中断:ETL服务宕机重启后异常任务自动重跑
数据仓库·mysql·etl·etlcloud·数据传输·etl工具
这个DBA有点耶18 天前
ELT工具选型:ETL与ELT差异、CDC同步机制与主流工具对比`
数据库·数据仓库·sql·database·dba·etl·数据库管理员
bingHHB21 天前
钉钉审批修改后回写金蝶付款单:增量更新策略实战
etl·集成学习
Dyx邓杨喜24 天前
EasyJob开源发布,让数据自动飞进飞书大屏(多种任务类型 : SQL任务,ETL 同步,监控通知,飞书表格同步,HTTP请求,自定义任务流)
http请求·etl·数据同步·任务调度·飞书表格
躺柒1 个月前
读数据架构知识体系指南12数据导入方法
数据分析·etl·数据架构·elt·数据设计·反向etl
让头发掉下来1 个月前
kettle学习-02多数据源合并
etl
千桐科技1 个月前
数据中台 ETL 编排实践:基于 qData 开源版实现数据接入、转换与调度执行
数据仓库·开源·etl
2601_962284172 个月前
基于Apache Cassandra与Python的数据建模及ETL实践
python·nosql·etl·数据建模·apachecassandra