Modbus TCP转EtherCAT协议采集网关工业总线数据采集(1)

3. 技术规格

项目描述
网关属性
型号JK826P
ETHERCAT侧的参数
网关做erhercat 从站连接倍福PLC、机器人,twincat等ETHERCAT 主站设备
最大PDO 长度inputs 和outputs 各为256 字节
可以使用的PDO 长度inputs 和outputs 各为224字节。
MODBUS-TCP侧的参数
网关的MODBUS工作方式网关的MODBUS只能做为主站(客户端)
通道数最多16个通道,最多采集16个modbus tcp 从站
功能码支持01H、02H、03H、04H、05H、06H、10H号功能
端口上位机动态修改
电源参数
直流输入特性额定电压:24V DC最大电压范围:16V DC~30V DC
整机功耗
最大功耗2.5W
外形尺寸与重量
外形尺寸(宽×深×高)110mm×90mm×44mm
重量0.5kg
环境参数
工作温度‘-40~85℃
存储温度‘-40~85℃
工作相对湿度5%~95%,非凝露
接口密度
type c 接口上位机与网关通讯的配置接口
ethercat 接口ETHERCAT 总线一进一出
LAN 接口采集局域网内的MODBUS TCP 从站数据
程序保护
看门狗硬件看门狗
安装方式
底面安装35mm导轨
侧面安装35mm导轨
侧面安装挂耳螺丝

4. 兼容设备列表

我们的网关支持与ETHERCAT协议PLC或ETHERCAT主站的通讯,包括但不限于:

  • 倍福PLC
  • 欧姆龙PLC
  • 汇川PLC

我们保证我们的网关能够与您现有的倍福和欧姆龙设备协同工作,为您的工业自动化系统提供更多的灵活性和可扩展性。

5.拓扑图

  • 单个网关设备应用

  • 多个网关设备应用方案

6. 使用场景

工业自动化

风力发电

7. 主要功能

  • 灵活通信: 实现Modbus TCP到EtherCAT的转换,实现不同工业设备的互通。
  • 配置简便: 0代码操作,提供直观易用的上位机配置界面,方便用户进行参数设置。
  • 稳定可靠: 高性能处理器确保数据传输的快速和可靠,进行了7*24小时通讯测试和老化测试,

8. 包装清单

  • 1 x 网关主体
  • 1 x DIN35配件
  • 1 x 挂耳
  • 1 x螺丝

9. 售后服务

  • 品质保证: 我们承诺提供高品质的网关产品,如有问题,请随时联系客服。
  • 售后服务: 提供7天无理由退换货,2年内出现非人为质量问题可免费维修。

10. 注意事项

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!

img

img

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)

img

最后

资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!

ges/73bb5de17851459088c6af944156ee24.jpg" alt=“img” style=“zoom: 67%;” />

最后

资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!

更多资料点击此处获qu!!

  • 29
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由于EtherCAT协议数据采集程序需要根据具体的设备和应用场景进行开发,因此下面提供一个基本的EtherCAT数据采集程序框架,供参考: ```c++ #include <stdio.h> #include <stdlib.h> #include <string.h> #include "ecrt.h" // EtherCAT主库头文件 #define ECAT_MASTER "SOEM" // EtherCAT主库类型,可选值为SOEM、EEROS、etc. #define ECAT_CYCLE_TIME 1000 // EtherCAT数据传输周期,单位为微秒 #define ECAT_SLAVE_NUM 1 // EtherCAT从站数量 #define ECAT_DOMAIN_NUM 1 // EtherCAT数据域数量 #define ECAT_DOMAIN_SIZE 1024 // EtherCAT数据域大小,单位为字节 // EtherCAT从站对象结构体 typedef struct { ec_slave_config_t *config; uint8_t *domain_ptr; } ec_slave_t; int main(int argc, char **argv) { // 初始化EtherCAT主库 if (ecrt_master_init() != 0) { printf("Failed to initialize EtherCAT master!\n"); return -1; } // 获取EtherCAT主库类型 printf("EtherCAT master type: %s\n", ecrt_master_type()); // 扫描EtherCAT总线上的从站 if (ecrt_master_scan() <= 0) { printf("No EtherCAT slaves found!\n"); return -1; } // 获取EtherCAT从站数量 int slave_count = ecrt_slave_count(); printf("Number of EtherCAT slaves: %d\n", slave_count); // 分配EtherCAT从站对象数组 ec_slave_t slaves[ECAT_SLAVE_NUM]; // 配置EtherCAT从站 for (int i = 0; i < ECAT_SLAVE_NUM; i++) { // 获取EtherCAT从站配置对象 ec_slave_config_t *config = ecrt_slave_config_ptr(i + 1); // 检查EtherCAT从站配置对象是否为空 if (!config) { printf("Failed to get slave config for slave %d!\n", i + 1); return -1; } // 获取EtherCAT从站对象 ec_slave_t *slave = &slaves[i]; // 配置EtherCAT从站对象 slave->config = config; slave->domain_ptr = (uint8_t *) ecrt_slave_dataptr(i + 1, 0); // 打印EtherCAT从站信息 printf("EtherCAT slave %d: Vendor ID = 0x%X, Product ID = 0x%X\n", i + 1, ecrt_slave_config_get_vendor_id(config), ecrt_slave_config_get_product_code(config)); } // 创建EtherCAT主时钟 ec_master_t *master = ecrt_master_create(ECAT_MASTER); if (!master) { printf("Failed to create EtherCAT master!\n"); return -1; } // 创建EtherCAT主时钟周期 ec_domain_t *domain = ecrt_domain_create(); if (!domain) { printf("Failed to create EtherCAT domain!\n"); return -1; } // 分配EtherCAT数据域缓冲区 uint8_t *domain_ptr = (uint8_t *) malloc(ECAT_DOMAIN_SIZE); if (!domain_ptr) { printf("Failed to allocate EtherCAT domain buffer!\n"); return -1; } // 注册EtherCAT数据域 if (ecrt_domain_reg_pdo_entry_list(domain, slaves[0].config->slave, slaves[0].config->index, slaves[0].config->vendor, NULL, 0, NULL, ECAT_DOMAIN_SIZE) < 0) { printf("Failed to register PDO entry list for EtherCAT domain!\n"); return -1; } // 设置EtherCAT数据域缓冲区 ecrt_domain_set_dataptr(domain, domain_ptr); // 使能EtherCAT从站 if (ecrt_slave_config_pdos_enable(slaves[0].config, ECAT_DOMAIN_NUM) < 0) { printf("Failed to enable PDOs for EtherCAT slave!\n"); return -1; } // 启动EtherCAT主时钟 if (ecrt_master_activate(master) != 0) { printf("Failed to activate EtherCAT master!\n"); return -1; } // EtherCAT数据采集循环 while (1) { // 循环等待EtherCAT主时钟周期 if (ecrt_master_application_time(master) >= ECAT_CYCLE_TIME) { ecrt_master_sync_reference_clock(master); ecrt_master_sync_slave_clocks(master); ecrt_domain_process(domain); // 读取EtherCAT从站数据 // TODO: Add your code here to read data from EtherCAT slaves ecrt_domain_queue(domain); ecrt_master_send(master); } } // 停止EtherCAT主时钟 ecrt_master_deactivate(master); // 释放EtherCAT主时钟周期 ecrt_domain_remove(domain); // 释放EtherCAT主时钟 ecrt_master_destroy(master); // 释放EtherCAT数据域缓冲区 free(domain_ptr); // EtherCAT主库 ecrt_master_finalize(); return 0; } ``` 需要根据实际情况,添加读取EtherCAT从站数据的代码,例如使用ecrt_slave_receive()函数读取从站数据。同时,还需要根据具体的EtherCAT从站对象配置PDO和OD等参数,具体操作请参考EtherCAT从站设备的用户手册。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值