Modbus rtu的通信(做主站)

news2024/11/13 14:43:35

Modbus rtu的通信(做主站)
首先进入“设备视图”添加通讯模块RS422/RS485通讯模块,点击通讯接口,配置modbus的参数,常规→端口组态,选择“半双工(RS-485)2线制模式”,波特率、奇偶校验、数据位、以及设置停止位, 但是该模块用于 Modbus 通信时,此设置的停止位无效, 需要在 “Modbus_Comm_Load” 指令的背景 DB 的静态变量中修改 “STOP_BITS” 数值为 2。如图 1-1所示:
在这里插入图片描述

图1-1
最后需要在“硬件标识符”里确认一下 CM PtP 模块硬件标识符,该参数在程序编程中会被使用。
在这里插入图片描述

创建一个FB块,点击进入,在通信项目数中点开“MODBUS (RTU)”把“Modbus_Comm_Load”和“Modbus_Master”拉出去,以为这个案列是plc做主站,所以不用从站的功能块 。

在这里插入图片描述

使用FB块的块接口:Static(静态变量)中建立“Modbus端口”的静态参数,数据类型用“Modbus_Comm_Load”,以及建立“Modbus主站”的静态参数。如下图1-2
在这里插入图片描述

图1-2
Modbus RTU 主站编程需要调用 Modbus_Comm_Load 指令和 Modbus_Master 指令,其中 Modbus_Comm_Load 指令通过 Modbus RTU 协议对通信模块进行组态,Modbus_Master 指令可通过由 Modbus_Comm_Load 指令组态的端口作为 Modbus 主站进行通信, Modbus_Comm_Load 指令的 MB_DB 参数必须连接到 Modbus_Master 指令的(静态)MB_DB 参数。如图1-3
在这里插入图片描述

图1-3

注意:
① Modbus_Comm_Load 指令不建议在启动组织块 OB100 中调用,建议在 OB1 中调用。
Modbus_Comm_Load 指令在 OB1 中调用时,其输入位“REQ”需使用上升沿触发,本例中该输入位采用 “FirstScan” 系统存储器位。
② Modbus_Comm_Load 指令背景数据块中的静态变量 “MODE” 用于描述点对点模块的工作模式,有效的工作模式包括:
0 = 全双工 (RS232)
1 = 全双工 (RS422) 四线制模式(点对点)
2 = 全双工 (RS422) 四线制模式(多点主站)
3 = 全双工 (RS422) 四线制模式(多点从站)
4 = 半双工 (RS485) 二线制模式
该静态变量 “MODE” 默认数据为 0(RS232 全双工模式),需要根据点对点模块实际组态修改该数值,本例中 CM PtP 模块工作在 RS485 半双工模式需要将该数值修改为 4,如图 1-4所示。
在这里插入图片描述

图1-4
或在程序段传输,用move指令把4传给“#Modbus_Comm_Load_Instance_1.MODE”
在数据块的属性中取消“优化的块访问”即可将数据块修改为非优化访问的数据块(鼠标右键数据块,选择“属性”,取消“优化的块访问”)
当 Modbus RTU 网络中存在多个 modbus RTU 从站或一个 modbus RTU 从站同时需要多个作业,例如需要读和写或者读多个区域等,则需要调用多个 Modbus_Master 指令,Modbus_Master 指令之间需要采用轮询方式调用,并且使用相同背景数据块。用“Done”完成位来触发下一个轮询。如图1-5、
图1-6
在这里插入图片描述

图1-5
在这里插入图片描述
在这里插入图片描述

图1-6所示
Modbus rtu的通信(做从站)
Modbus RTU 从站编程需要调用 Modbus_Comm_Load 指令和 Modbus_Slave 指令
Modbus的参数设置以及Modbus_Comm_Load 指令块的编写就和主站一样,Modbus_Comm_Load 指令的 MB_DB 参数必须连接到 Modbus_Master 指令的(静态)MB_DB 参数。 Modbus_Slave 指令的 “MB_HOLD_REG” 用于定义 CPU 的 Modbus 保持寄存器的数据区域地址,该数据区域在 V3.0 支持非优化(标准的)数据块。一般建议使用指针方式填写,例如程序中的 P#DB6.DBX0.0 WORD 100,此外也可以使用基本数据类型数组方式填写,如图1-7

在这里插入图片描述

图1-7
调试时注意的问题
①检查硬件标识符是否正确
②检查通信模块是否与软件上的相对应
③RS485 半双工模式需要将该数值修改为 4
④Modbus_Comm_Load 指令的 MB_DB 引脚不能填错
⑤轮询用Done完成位来触发
⑥Modbus_Comm_Load 指令块的“REQ”引脚用“FirstScan” 系统存储器位

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2079217.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一个案例讲清楚利用电商API数据分析的逻辑

01 分析思路 通过经营整体数据、客群、商品3个方向。 目前整体的销售走势如何?都通过哪些渠道进店?整店转化率怎么样?一周内哪天最活跃?客群转化和留存如何?哪些品类和商品为主要贡献? 02 数据定义与处…

酸敏感多肽在药物递送方面的作用机制及其应用

摘要: 作为一类新型的递送载体,多肽具有丰富的生物活性、较低的免疫原性及良好的生物相容性,近年来利用多肽递送药物或基因的研究得到广泛关注。其中,具有酸敏感性的多肽,在肿瘤微环境或溶酶体的弱酸性条件下可以产生二级结构的改…

小模型血战 phi3.5暂时胜出

背景 大模型推理成本高,训练成本高,百万美金训练一次,全量微调,加载到GPU显存都成本很高,创业公司没法搞,一般的公司想到还没想到用大模型挣钱了,就要这么大投入。基本犹豫就不投入&#xff0c…

【B端产品知识总结】角色权限管理设计思想

目录 前言 一、简单的用户权限 二、基于角色的权限访问模型(RBAC) 三、RBAC模型的其他权限方案 1、用户组权限设计 2、继承角色权限设计 3、基于角色设计的约束 四、权限控制的设计 1.页面权限 2.操作权限 3.业务权限 4.数据权限 五、对于B端…

【MyBatis】转义符+缓存机制

目录 一. 特殊符号处理 二. MyBatis缓存机制 1. 什么是缓存&#xff1f; 2. 一级缓存 3. 二级缓存 一. 特殊符号处理 1. 在 mybatis 中的 xml 文件&#xff0c;一些特殊符号需要转译&#xff1a; <!--转义字符 " <" 号会报错&#xff0c;">&qu…

哪个软件可以把试卷扫描成空白卷?这几款很不错

哪个软件可以把试卷扫描成空白卷&#xff1f;在数字化学习日益普及的今天&#xff0c;将试卷扫描成空白卷成为了许多教师和学生提升学习效率的重要手段。传统的扫描仪不仅体积庞大、操作复杂&#xff0c;而且成本高昂&#xff0c;不太适合个人用户。那么要怎么做呢&#xff1f;…

图纸文件怎么加密,六款图纸加密软件推荐

在现代设计与工程领域&#xff0c;图纸和设计文件的安全性至关重要。无论是建筑设计、机械工程还是电子电路图&#xff0c;图纸泄露都可能造成无法估量的损失。因此&#xff0c;选择一款可靠的图纸加密软件是保护知识产权的首要任务。在本文中&#xff0c;我们将推荐六款备受好…

尚硅谷Java面试题第四季-Java基本功

1.服务可用性多少个9是什么意思&#xff1f; 2.Arrays.asList()把数组转换成集合大坑 代码&#xff1a; public class Arrays_BugDemo {public static void main(String[] args){List<Integer> list Arrays.asList(1,2);list.add(3);list.forEach(System.out::println…

【Notion的一些简单介绍】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

鸿蒙位置服务

位置服务 1、首先申请权限 在module.json5文件下申请位置权限 "requestPermissions": [{"name": "ohos.permission.LOCATION", // 权限名称,为系统已定义的权限"reason": "$string:location_reason", // 申请权限的原因,…

别让病毒毁了你的数据,用户必备的ClamAV扫描神器!

背景 在Linux环境中&#xff0c;尽管由于其独特的权限管理和文件系统结构使得病毒感染的概率较低&#xff0c;但为了确保系统的安全性&#xff0c;尤其是在处理共享文件或邮件服务器时&#xff0c;安装和使用病毒扫描工具依然至关重要。ClamAV是一款开源的防病毒软件&#xff…

KPaaS:微服务架构下的持续集成与部署(CI/CD)应用实践

在微服务架构下&#xff0c;CI/CD&#xff08;持续集成/持续部署&#xff09;已经成为软件开发过程中的一项关键实践。这种实践不仅提高了开发团队的工作效率&#xff0c;还确保了软件的质量和安全性。通过将代码更改频繁地集成到主分支&#xff0c;开发团队可以更早地发现潜在…

oppo手机短信删除了怎么恢复?可用这2个恢复方法

日常使用OPPO手机时&#xff0c;如果不慎删除了重要的短信&#xff0c;怎么办&#xff1f;oppo手机短信删除了怎么恢复&#xff1f;今天小编就分享2种简单的恢复办法&#xff0c;帮大家找回那些被误删的短信。 方法一&#xff1a;通过oppo手机的云端备份服务恢复短信 OPPO手机…

1259:【例9.3】求最长不下降序列 动态规划

1259&#xff1a;【例9.3】求最长不下降序列 题目链接 【输入样例】 【输入样例】 14 13 7 9 16 38 24 37 18 44 19 21 22 63 15【输出样例】 max8 7 9 16 18 19 21 22 63思路&#xff1a; 确定状态&#xff1a; a[n]数组放数据&#xff0c; dp[n]数组放第i个位子前最长子序…

产品经理如何提升系统思考能力

很多工作年限比较短的产品经理&#xff0c;分析问题的时候最初看到的都是单点&#xff0c;只有积累了足够的经验和阅历后&#xff0c;才能看到单点之外的“全局”&#xff0c;才会慢慢形成自己的系统思考能力&#xff0c;才会提高自己的认知能力。 产品经理如果想往更高层面发…

nacos配置持久化到Mysql数据库

Nacos持久化配置&#xff08;Mac版本&#xff09; 一&#xff1a;生成持久化nacos数据的表 找到mysql-schema.sql表(如下图)&#xff0c;里面全部内容直接在mysql库中执行&#xff0c;生成表。 mysql-schema.sql位置&#xff1a; nacos/distribution/target/nacos-server-2.…

erlang学习:gen_server书上案例22.6练习题5

检查是否有懒惰的工人&#xff0c;也就是接受工作但不按时完成的进程。把任务请求函数修改为 返回{JobNumber, JobTime, F}&#xff0c;其中JobTime是工人必须完成任务的秒数。如果工人在JobTime 1时还未完成任务&#xff0c;服务器就应当向其发送一个hurry_up&#xff08;快点…

创建视频说明书二维码的具体步骤(三步操作)

原创二维码教程&#xff0c;2024.8.27&#xff0c;长沙 视频说明书二维码是一种创新且有效的工具&#xff0c;能够为用户提供直观的操作指导和使用体验&#xff0c;广泛应用于各种场景中。 1.电子产品说明书 手机、平板和电脑&#xff1a;在包装盒内或产品说明书上加入视频二…

kkfileview最新源码编译+部署+踩坑问题

kkFileView为文件文档在线预览解决方案&#xff0c;该项目使用流行的spring boot搭建&#xff0c;易上手和部署&#xff0c;基本支持主流办公文档的在线预览&#xff0c;如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等&#xff0c;其开源免费&#xff0c;且…

2535. 解密 [CSP-J 2022]

代码 #include <bits/stdc.h> using namespace std; long long m,n; int check(int x){if(x * (m - x) n) return 0;if(x * (m - x) < n) return 1;if(x * (m - x) > n) return 2; } int main(){int k;cin >> k;while(k--){long long e, d,p0,q0;scanf(&q…