当前位置: 首页 > news >正文

EtherCAT OpenEuler Web控制启动

简述

在参考《OpenPLC WebServer启动》、《EtherCAT协议移植》移植完EtherCAT协议到开发板之后需要结合Web Server进行远程控制。

操作流程

基于OpenPLC源码执行 sudo ./install.sh linux ethercat 编译生成带EtherCAT协议的执行程序openplc

将该程序移植到开发板core目录下,执行之前需要配置ethercat配置文件utils/ethercat_src/build/ethercat.cfg,将configonly改为0(默认是1对应只进行仿真不进行实际控制)

之后加载ethercat驱动,识别主从机。

#启动网口3 使用网口3进行ethercat通讯
ifconfig eth3 192.168.6.252 

depmod -a

#08:03:08:08:08:08对应网口3物理地址
modprobe ec_master main_devices="08:03:08:08:08:08"
insmod /lib/modules/5.10.0/kernel/net/packet/af_packet.ko
insmod /lib/modules/5.10.0-openeuler/ec_generic.ko

/etc/init.d/ethercat start

成功识别到主从机之后执行,执行python3.10 webserver.py启动

点击Start PLC就会运行执行程序,实现远程PLC设备控制。

报错解决

找不到EtherCAT0设备

Starting EtherCAT master 1.5.2 modprobe: FATAL: Module ec_master not found in directory /lib/modules/5.10.0-openeuler

解决:

modprobe ec_master main_devices="08:03:08:08:08:08"

libsqlite3.so.0 is not a symbolic link

解决:

ln -sf /opt/etherlab/lib/libethercat.so /opt/etherlab/lib/libethercat.so.1

ln -sf /lib64/libsqlite3.so /lib64/libsqlite3.so.0

ln -sf /lib/libsqlite3.so /lib/libsqlite3.so.0

ioctl失败

qemu-aarch64 /tmp/build_ethercat # ethercat master

Failed to obtain number of masters: ioctl() version magic is differing: /dev/EtherCAT0: 37, ethercat tool: 30

解决:重新编译1.5 ethercat版本 编译步骤参考 编译openplc 源码独立版本(1.5.3 适配OpenEuler内核)

Files · stable-1.5 · EtherLab / EtherCAT Master · GitLab

找不到从设备

解决:加载 ec_generic.ko驱动

modprobe /lib/modules/5.10.0-openeuler/ec_generic.ko

ec_generic.ko创建socket失败

解决:缺少af_packet.ko驱动

insmod /lib/modules/5.10.0/kernel/net/packet/af_packet.ko

从站不能操作

没有进入OP模式

解决:

/opt/etherlab/bin/ethercat states OP

/opt/etherlab/bin/ethercat slaves

卡在仿真阶段

解决:

qemu-aarch64 /tmp/core # vi ../utils/ethercat_src/build/ethercat.cfg

将configonly设置为0

./openplc --modbus-config ./mbconfig.cfg --configonly 0

Didn't load /dev/EtherCAT0, unable to continue

ioctr内核和驱动版本不匹配 通讯失败

`libethercat` 库版本为 37,而 `/dev/EtherCAT0` 设备版本是 33,导致它们之间的不兼容。

解决:增加环境变量 使得调用正确调用/tmp/build_ethercat/lib 中的库

export LD_LIBRARY_PATH=/tmp/build_ethercat/lib:$LD_LIBRARY_PATH

打不开../utils/ethercat_src/build/ethercat.cfg

用网站启动程序报错:

解决:websever.py和其依赖移植core目录 在core目录下再创建core目录,将openplc执行程序放在里面

相关文章:

  • Docker的使用
  • 云容灾落地指南:华为云主备容灾RTO和RPO最佳实践
  • 健康医疗大数据——医疗影像
  • C++ string类(前)
  • 责任链模式如何减少模块之间的耦合
  • 源IP泄露后如何涅槃重生?高可用架构与自动化防御体系设计
  • 本地部署deepseek,局域网链接,添加个人知识库
  • 使用Leaflet 搭建一个前端地图项目,实现类似原神、黑神话悟空的标点互动地图效果
  • CNN的激活函数
  • ElasticSearch入门及安装 ( 一 )
  • MySQL---INSERT语句、UPDATE语句、DELETE语句
  • 深入解析AI音乐创作原理:从算法到艺术
  • 如何搭建一个适配微信小程序,h5,app的uni-app项目
  • 数字化新零售与 AI 大模型,如何重塑大健康赛道?​
  • 食品饮料制造行业的现状 内检实验室系统在食品饮料制造行业应用
  • kettle ETL 配置
  • 图论·拓扑排序
  • Arthas解决CPU飙高和定位死锁问题,JProfiler解决OOM问题
  • 支付宝小程序评论提升策略:打造高互动度的用户体验
  • TONGYI Lingma(通义灵码),GitHub Copilot和Cursor 对比
  • 浙商银行外部监事高强无法履职:已被查,曾任建行浙江省分行行长
  • 发挥全国劳模示范引领作用,加速汽车产业电智化转型
  • 4月人文社科联合书单|天文学家的椅子
  • 石家庄:城市更新,生活向美
  • 解放日报头版头条:“五个中心”蹄疾步稳谱新篇
  • 地下管道密布成难题,道路修整如何破局?