openplc Linux 使用modbus RTU 从机通讯

news2025/1/18 7:17:57

1.Linux 环境下,openplc 默认使用的是modbus tcp协议通信。

        想要使用串口 modbus rtu 通讯可以通过在runtime中添加SlaveDevices从机设备

 2.添加设备,分配地址。

        左边添加串口配置,右边是需要通讯的地址,从机地址都是从100开始,100以内是主机使用。地址最好连续分配使用。

         Discrete Inputs (%IX100.0):bit操作,离线输入,主机读从机。

        Coils (%QX100.0):bit操作,线圈状态,主机写从机。

        Input Registers (%IW100):16位数据,输入寄存器,主机只读从机。

        Holding Registers - Read (%IW100):16位数据,保持寄存器,主机读从机。

        Holding Registers - Write (%QW100):16位数据,保持寄存器,主机写从机。

3.COM port串口扫描不出来问题。

        串口比如 /dev/ttySTM2 有驱动但是在添加设备时扫描不出来。可以修改网页代码手动添加设备名就行了。 

        网页html源码在webserver.py中,

        3.1 先修改add-modbus-device 页面, 1133行,把 设备扫描屏蔽,手动添加串口名。

         3.2 修改modbus-edit-device编辑页面,1271行,也是一样,直接屏蔽,手动添加。

4. 添加地址。 

        如下:添加 QX100.0 主机bit写从机,IX100.0 主机bit读从机。

        IW100 主机16bit只读从机,QW100 主机16bit写从机,QW101主机16bit写从机。

 5. 添加代码测试程序。

if tcpGet = 1 then
  tcpGet := 0;
  
  ledSet := 1;
  gpioSet :=1;
  
  dacSet := 1024;
  
  qx100 := 1;
  qx100_1 := 1;
  qw100 := 45;
  qw101 := 45;
  
  gpioRead0 := gpioRead;
  adcRead0 := adcRead;
  ix100st := ix100;
  iw100st := iw100;
  {
    printf("/***/\n");
    printf("/**/\n");
    printf("/*/\n");
    printf("/*********gpio10=%d, adc=%f, ix100.0=%d*******/\n",GetFbVar(GPIOREAD0),GetFbVar(ADCREAD0)/100.0,GetFbVar(IX100ST));
    printf("/*********iw100=%d*******/\n",GetFbVar(IW100ST));
    printf("/*/\n");
    printf("/**/\n");
    printf("/***/\n");
  }
elsif tcpGet = 2 then
  tcpGet := 0;
  
  ledSet := 0;
  gpioSet :=0;
  
  dacSet := 3072;
  
  qx100 := 0;
  qx100_1 := 0;
  qw100 := 78;
  qw101 := 78;
  
  gpioRead0 := gpioRead;
  adcRead0 := adcRead;
  ix100st := ix100;
  iw100st := iw100;
  {
    printf("/***/\n");
    printf("/**/\n");
    printf("/*/\n");
    printf("/*********gpio10=%d, adc=%f, ix100.0=%d*******/\n",GetFbVar(GPIOREAD0),GetFbVar(ADCREAD0)/100.0,GetFbVar(IX100ST));
    printf("/*********iw100=%d*******/\n",GetFbVar(IW100ST));
    printf("/*/\n");
    printf("/**/\n");
    printf("/***/\n");
  }
end_if;

6. modbus rtu从机设备测试。

        下载 MThings-下载 

配置串口信息

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

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

相关文章

了解光纤的最大损耗

在电信和数据传输领域,保持最佳的网络性能和可靠性至关重要。 影响网络完整性的关键因素之一是光纤中的信号丢失。信号损耗,也称为衰减损耗或光纤衰减,测量光缆输入和输出之间的光损耗量。本文将深入探讨光纤中的主要损耗,并指导您…

【python】计算水仙花数

【python】计算水仙花数 "水仙花数"是指一个3位数,它的三个位上的数字的3次幂之和等于它本身。例如,"153"就是一个水仙花数,因为1^3 5^3 3^3 153。以下是一个Python代码示例,用于计算并打印出所有的三位数…

抹机王的使用教程以及常见问题

首先请确保你已经正常安装了XPosed/EDXP/LSP框架并已激活抹机王模块,其中XP和EDXP模块均只需要框架内激活抹机王并重启即可,LSPosed注意作用域需要勾选上自己想要修改的APP(如果你还是一意孤行只勾选系统框架那改机完全没用就是你自己的想法了…

性能测试-数据库优化二(SQL的优化、数据库拆表、分表分区,读写分离、redis、数据库监控)

数据库优化 explain select 重点: type类型,rows行数,extra SQL的优化 在写on语句时,将数据量小的表放左边,大表写右边where后面的条件尽可能用索引字段,复合索引时,最好按复合索引顺序写wh…

LeetCode 57—— 插入区间

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 第一步,我们先寻找新区间和原始区间列表的重叠部分。 假设新区间为 [ x 1 , x 2 ] [x_1, x_2] [x1​,x2​],原始区间列表中的其中一个区间为 [ y 1 , y 2 ] [y_1, y_2] [y1​,y2​]&…

C++学习 <day1-C++介绍基础>

一、什么是C 1. C介绍 C由程序员控制生命周期(性能提升);C数据存储等方式由硬件决定(性能提升); C11 引入了 type_traits/range; C17 删除了 auto_ptr; 二、C开发环境&相关工…

数据库锁等待排查方法、命令行安装数据库及授权文件更新

欢迎关注“数据库运维之道”公众号,一起学习数据库技术! 本期将为大家分享“数据库锁等待排查方法、命令行安装数据库及授权文件更新”的运维技能。 关键词:锁等待、V$LOCK、V$TRXWAIT、死锁、锁超时、命令行部署达梦、授权文件更新 当用户反馈执行SQL语…

“开关是灯的日出日落,日出日落是灯的开关”

C语言刷题 day01 本篇是C语言刷题大杂烩,收集了笔者遇到的认为有价值的题目,本篇会持续更新~~ day01 至少是其他数字两倍的最大数 题目原文: 题意解析: 请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 …

Spring Cloud+Uniapp 智慧工地云平台源码 智慧工地云平台AI视频分析应用

目录 AI应用与环境治理 设备管理与危大工程 塔吊安全监管 智慧工地APP端 智慧工地硬件设备 智慧工地主要功能模块 智慧工地可以通过以下几个方面为建筑行业赋能: 1.提高工程效率 2.提高工程安全性 3.提高工程质量 4.提高工程管理效率 绿色施工 质量管理…

C++之类和对象二

目录 1.类的6个默认成员函数 2. 构造函数 3.析构函数 1.类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是的,任何一个类在我们不写的情 况下,都会自动生成下面6个默认成员函数。 clas…

国民经济行业导入数据库码表

目录 1、先去下载word文档图片如下 2、粘贴到excel中形成insert 语句 3、创建临时表存excel中数据 4、创建码表保存信息 5、编写存储过程放入表中 5.1存储第四级码值及父机构 5.2存储第三级码值及父机构 5.3存储第二级码值及父机构 5.4存储第一级码值 6、导入成功查看…

1.微服务介绍

完整的微服务架构图 注册中心 配置中心 服务集群 服务网关 分布式缓存 分布式搜索 数据库集群 消息队列 分布式日志服务 系统监控链路追踪 Jenkins docker k8s 技术栈 微服务治理: 注册发现、远程调用、负载均衡、配置管理、网关路由、系统保护、流量…

【学习】测试新项目该如何高效的展开测试?需要做哪些规划?

当我们收到测试项目时,如何高效地展开测试是我们作为测试人员所要面临的一大挑战。测试是软件开发过程中不可或缺的一环,它确保了产品的质量,降低了出现问题的风险,提高了用户的满意度。因此,我们需要制定合理的测试计…

前端三剑客 HTML+CSS+JavaScript ① 基础入门

光永远会照亮你 —— 24.4.18 一、C/S架构和B/S架构 C:Client(客户端) B:Browser(浏览器) S:Server(服务器) C/S 架构: B/S 架构: 大型专业应用、安全性要求较高的应用,还…

2024华中杯C题完整论文讲解(含完整python代码及所有曲率插值和坐标数据表格)

大家好呀,从发布赛题一直到现在,总算完成了2024华中杯C题光纤平面曲线重构完整的成品论文。 本论文可以保证原创,保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 共38页,一些修改…

2024年国内五大企业邮箱,哪个最靠谱?

电子邮件是企业办公的重要手段,目前我国五大企业的邮箱都有Zoho Mail公司邮箱、腾讯企业邮箱、阿里企业邮箱、网易企业邮箱、263公司邮箱。可是哪个电子邮件最可靠呢?可靠的企业邮箱必须要安全性高、稳定性高,能够保护企业的隐私不被泄露&…

【毕业设计】基于JAVA的两个通用安全模块的设计与实现(源代码+论文)

目录 1.说明 2.系统设计与实现 2.1总体结构图 2.2与数据库建立连接 2.3与数据库建立连接 2.4数字证书创建 2.5关键代码说明 1.说明 详细介绍基于口令的身份认证与文件安全传输两个通用安全模块的设计原理和实现过程,分析了当前口令保存的安全性,提出了…

噪声系数测试之增益法

提到增益法测试噪声系数,大家并不陌生,这是一种简洁的测试方法,精度不如Y因子法,但是在某些测试场合,比如只有频谱仪而没有噪声头时,且待测件具有非常高的增益时,就可以使用增益法测试噪声系数。 增益法测试噪声系数的连接示意图如图1所示,其思路为:DUT输入端端接50 …

2024的新宠儿——Mamba(3):Mamba的三大创新

mamba(其对应论文为:https://arxiv.org/abs/2312.00752,这是其对应的GitHub代码地址:GitCode - 开发者的代码家园),在语言、音频、DNA序列模态上都实现SOTA,在最受关注的语言任务上,Mamba-3B超越同等规模的Transformer,与两倍大的Transformer匹敌,并且相关代码、预训练模…

PR CC 2024安装教程(附免费安装包资源)

鼠标右击软件压缩包,选择“解压到当前文件夹”。 打开解压后的文件夹,鼠标右击“Set-up”选择“以管理员身份运行”。 点击文件夹图标。” 点击“更改位置”。 更改完位置,点击“继续”。 软件正在安装,请耐心等待,谢谢…