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

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执行程序放在里面


http://www.kler.cn/a/583687.html

相关文章:

  • 华为OD机试-机场航班调度程序(Java 2024 D卷 100分)
  • 玩转python:掌握Python数据结构之Trie树
  • 线性回归机器学习
  • 数据类设计_图片类设计之1_矩阵类设计(前端架构基础)
  • linux docker 安装dify本地运行,及部署后运行出现502问题
  • Redis:常见数据类型和单线程模型
  • 反射、 Class类、JVM的类加载机制、Class的常用方法
  • 【pyenv+venv组合来使用Python虚拟环境的方法】
  • 大脑宏观结构中的富集俱乐部:图论分析视角
  • 【Vue】el-dialog的2种封装方法(父子组件双向通信),$emit触发父事件/.sync修饰符双向绑定
  • 家电制造行业内检实验室LIMS系统推荐 如何提升家电制造行业品质
  • Linux网络编程之——网络初认识
  • 家政服务平台(源码+文档+讲解+演示)
  • 探讨如何在AS上构建webrtc(3)分享WebRTC-CMakeBuild轻量化工程
  • 深度剖析Redis:双写一致性问题及解决方案全景解析
  • Insar结合ISCE2,某一个文件进行并行-stackSentinel.py
  • 二、Jenkins部署你的第一个自动化流程(Vuepress项目)
  • Redis 主从复制机制深度解析与实践指南
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_core_module
  • 面试之《commonjs,requirejs和es6 Module的区别》