CCLINK IE转MODBUS-TCP网关modbus tcp协议详解
你是否曾经遇到过需要同时处理CCLINK IE FIELD BASIC和MODBUS两种数据协议的情况?捷米的JM-CCLKIE-TCP网关可以帮助你解决这个问题。
捷米JM-CCLKIE-TCP网关可以分别从CCLINK IE FIELD BASIC一侧和MODBUS一侧读写数据,然后将数据存入各自的缓冲区。接着,网关内部会将缓冲区的数据进行交换,从而实现两边数据的传输。这样的设计使得网关在处理不同协议的数据时更加灵活和高效。
1, MODBUS 功能码
MODBUS 报文相对比较固定,所以您只需要稍作了解,看几条报文之后就知道了它的结构,在需要的时候再来具体查询。
4.3.2.1 读取输出状态(01H)
功能码:01H 主站询问报文式:
地址 | 功能码 | 起始地址高位 | 起始地址低位 | 线圈数高位 | 线圈数低位 | CRC |
13H | 01H | 00H | 11H(17) | 00H | 25H | xxxx |
功能:读从站输出线圈0XXXX状态。
本例:读13H号从站输出线圈,寄存器起始地址=0011H=17,线圈数=0025H=37;因此,本
询问报文功能是:读19(13H)号从站输出线圈00017-00053,共37个线圈状态。
从站应答格式:
地址 | 功能码 | 字节计数 | 线圈状态 00017- 00024 | 线圈状态 00025- 00032 | 线圈状态 00033- 00040 | 线圈状态 00041- 00048 | 线圈状态 00049- 00053 | CRC |
13H | 01H | 05H | CDH | ABH | EFH | 12H | 1BH | xxxx |
2, 功能:从机返回输出线圈0XXXX状态本例:1B=00011011,对应00049-00053
1B= 0 0 0 1 1 0 1 1,对应00049-00053
填 |
0 |
00049 |
00053 |
|
4.3.2.2 读取输入状态(02H)
功能码:02H 主站询问报文式:
地址 | 功能码 | 起始地址高位 | 起始地址低位 | 线圈数高位 | 线圈数低位 | CRC |
13H | 02H | 00H | 12H(18) | 00H | 10H | xxxx |
功能:读从站输入线圈1XXXX状态。
本例:读13H号从站输入线圈,起始地址=0012H=18,线圈数=0010H=16
因此,本询问报文功能是:读19(13H)号从站输入线圈10018—10033,共16个输入线圈状态;
从站应答格式:
地址 | 功能码 | 字节计数 | 线圈状态 10018-10025 | 线圈状态 10026-10033 | CRC |
13H | 02H | 02H | CDH | ABH | xxxx |
功能:从机返回DI=1XXXX状态
4.3.2.3 读取保存寄存器(03H)
功能码:03H 主站询问报文式:
地址 | 功能码 | 起始地址高位 | 起始地址低位 | 寄存器数高位 | 寄存器数低位 | CRC |
13H | 03H | 00H | 60H(96) | 00H | 02H | xxxx |
功能:读从站保持寄存器4XXXX值。
本例:读13H号从站保持寄存器值,起始地址=0060H=96,寄存器数=0002;
因此,本询问报文功能是:读19(13H)号从站3个保持寄存器40096—40097的值;从站应答格式:
地址 | 功能码 | 字节计数 | 寄存器 40096 高位 | 寄存器 40096 低位 | 寄存器 40097 高位 | 寄存器 40097 低位 | CRC |
13H | 03H | 04H | 03H | 00H | 02H | 2AH | xxxx |
功能:从站返回保持寄存器的值:40096=0300H,40097=022AH
网关的控制字
D7~D1 | D0:启动 MODBUS 发送 |
保留 | 0:停止 1:启动 |
5.5.2 网关的状态字
D7:奇偶校验 | D6:CRC 校验 | D5:等待超时 | D4~D1:异常应答 | D0:接收/发送 |
0:没有错误 1:奇偶校验错 | 0:没有错误 1:CRC 校验错 | 0:没有错误 1:等待超时 | 0:没有错误 其他:Modbus 访问异常 | 0:准备接收 1:准备发送 |
5.5.3 启动捷米JM-CCLKIE-TCP网关的 Modbus
- 使用 Modbus Slave 软件做为从站,与网关的 RTU 端子连接进行测试。
- 点击软件的菜单栏“Connection——Connect…”,设置正确的端口号,然后点击 OK,开始运行。如下图:
- 点击软件的菜单栏“Setup——Slave Definition”,设置从站允许访问的数据区,如下图:
- 在 GX WORKS3 主站软件上,将输出数据的第 1 个 word 赋值为 1(控制字 =1),启动 MODBUS-RTU 通讯。
- 测试数据:
在 Modbus Slave 软件中,手动修改数据值,如下图:
6, 可以在 GX WORKS3 主站软件中监控到上传数据。
7. 在 GX WORKS3 主站软件上手动修改一个 output 数据值,在 Modbus Slave 软件中可以监视到,数据已经成功下发。
8, 通过使用捷米的JM-CCLKIE-TCP网关,你可以轻松地同时处理CCLINK IE FIELD BASIC和MODBUS两种数据协议。赶快评论分享你对这个网关的看法,并告诉我们你是否有类似的需求吧!
相关文章:

CCLINK IE转MODBUS-TCP网关modbus tcp协议详解
你是否曾经遇到过需要同时处理CCLINK IE FIELD BASIC和MODBUS两种数据协议的情况?捷米的JM-CCLKIE-TCP网关可以帮助你解决这个问题。 捷米JM-CCLKIE-TCP网关可以分别从CCLINK IE FIELD BASIC一侧和MODBUS一侧读写数据,然后将数据存入各自的缓冲区。接着…...
vue2根据不同的电脑分辨率显示页面内容及不同设备适配显示
1.安装插件: npm install postcss-px2rem px2rem-loader --save npm i lib-flexible --save 2.创建flexible.js,并在main.js引用 ;(function(win, lib) {var doc = win.document;var docEl = doc.documentElement;var metaEl = doc.querySelector(meta[name="viewport&…...
概率论:多维随机变量及分布
多维随机变量及分布 X X X为随机变量, ∀ x ∈ R , P { X ≤ x } F ( x ) \forall x\in R,P\{X\le x\}F(x) ∀x∈R,P{X≤x}F(x) 设 F ( x ) F(x) F(x)为 X X X的分布函数,则 (1) 0 ≤ F ( x ) ≤ 1 0\le F(x)\le1 0≤F(x)≤1 &am…...

flutter-第三方组件
卡片折叠 stacked_card_carousel 扫一扫组件 qr_code_scanner 权限处理组件 permission_handler 生成二维码组件 pretty_qr_code 角标组件 badges 动画组件 animations app更新 app_installer 带缓存的图片组件 cached_network_image 密码输入框 collection 图片保存 image_g…...

迪瑞克斯拉算法
迪锐克斯拉算法 简单来说就是在有向图中,给定一个图中具体的出发点,从这个点出发能够到达的所有的点,每个点的最短距离是多少。到不了的点,距离则是正无穷。有向,无负权重,可以有环。 所以说,迪…...

数据结构:力扣OJ题(每日一练)
目录 题一:环形链表 思路一: 题二:复制带随机指针的链表 思路一: 本人实力有限可能对一些地方解释的不够清晰,可以自己尝试读代码,望海涵! 题一:环形链表 给定一个链表的头节点…...

【论文阅读】基于深度学习的时序预测——Informer
系列文章链接 论文一:2020 Informer:长时序数据预测 论文二:2021 Autoformer:长序列数据预测 论文三:2022 FEDformer:长序列数据预测 论文四:2022 Non-Stationary Transformers:非平…...
机器学习 | Python实现GBDT梯度提升树模型设计
机器学习 | Python实现GBDT梯度提升树模型设计 目录 机器学习 | Python实现GBDT梯度提升树模型设计基本介绍模型描述模型使用参考资料基本介绍 机器学习 | Python实现GBDT梯度提升树模型设计。梯度提升树(Grandient Boosting)是提升树(Boosting Tree)的一种改进算法,GBDT也…...

elementUi表单恢复至初始状态并不触发表单验证
elementUi表单恢复至初始状态并不触发表单验证 1.场景再现2.解决方法 1.场景再现 左侧是树形列表,右侧是显示节点的详情,点击按钮应该就是新增一个规则的意思,表单内容是没有改变的,所以就把需要把表单恢复至初始状态并不触发表单…...

大模型相关知识
一. embedding 简单来说,embedding就是用一个低维的向量表示一个物体,可以是一个词,或是一个商品,或是一个电影等等。这个embedding向量的性质是能使距离相近的向量对应的物体有相近的含义,比如 Embedding(复仇者联盟)…...
无法在 macOS Ventura 上启动 Multipass
异常信息 ➜ ~ sudo multipass authenticate Please enter passphrase: authenticate failed: Passphrase is not set. Please multipass set local.passphrase with a trusted client. ➜ ~ multipass set local.passphrase Please enter passphrase: Please re-enter…...

算法通关村第六关——原来如此简单
层次遍历:又叫广度优先遍历。就是从根节点开始,先访问根节点下面一层全部元素,再访问之后的层次,直到访问完二叉树的最后一层。 我们先看一下基础的层次遍历题,力扣102题:给你一个二叉树,请你返…...

企业权限管理(八)-登陆使用数据库认证
Spring Security 使用数据库认证 在 Spring Security 中如果想要使用数据进行认证操作,有很多种操作方式,这里我们介绍使用 UserDetails 、 UserDetailsService来完成操作。 UserDetails public interface UserDetails extends Serializable { Collecti…...

第一百二十五天学习记录:C++提高:STL-deque容器(下)(黑马教学视频)
deque插入和删除 功能描述: 向deque容器中插入和删除数据 函数原型: 两端插入操作: push_back(elem); //在容器尾部添加一个数据 push_front(elem); //在容器头部插入一个数据 pop_back(); //删除容器最后一个数据 pop_front(); //删除容器…...

案例12 Spring MVC入门案例
网页输入http://localhost:8080/hello,浏览器展示“Hello Spring MVC”。 1. 创建项目 选择Maven快速构建web项目,项目名称为case12-springmvc01。 2.配置Maven依赖 <?xml version"1.0" encoding"UTF-8"?><project xm…...
【React】精选10题
1.React Hooks带来了什么便利? React Hooks是React16.8版本中引入的新特性,它带来了许多便利。 更简单的状态管理 使用useState Hook可以在函数组件中方便地管理状态,避免了使用类组件时需要继承React.Component的繁琐操作。 避免使用类组件…...
VS Spy++进程信息获取
查看进程中窗口信息。 Spy使用介绍 Windows下的程序及热键监视神器——Spy Word进程获取...

Java课题笔记~ SpringMVC概述
1.1 SpringMVC简介 SpringMVC 也叫Spring web mvc。是Spring 框架的一部分,在Spring3.0 后发布的。 1.2 SpringMVC的优点 基于MVC 架构 基于 MVC 架构,功能分工明确。解耦合。 容易理解,上手快,使用简单 就可以开发一个注解…...

SOPC之NIOS Ⅱ遇到的问题
记录NIOS Ⅱ中遇到的报错 一、NIOS II中Eclipse头文件未找到 问题:Unresolved inclusion: "system.h"等 原因:编译器无法找到头文件所在路径 解决方法: 在文件夹中找到要添加的头文件,并记录下其路径,如…...
uniapp uni-datetime-picker 日期和光标靠右
如果想在uni-datetime-picker组件中将日期和光标靠右,您可以使用自定义样式来实现。首先,您需要在页面的样式文件中定义一个类,用于定制uni-datetime-picker组件的样式。例如,你可以在App.vue或者页面的样式文件中添加以下代码&am…...

C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...

初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...