PLC程序实例二:ModBusTCP客户端编程实例与测试方法

news2024/9/22 11:29:52

一、需求描述

1、设备作为服务端时,需要给出对应的测试方法,即要求 PLC 作为客户端,设备作为服务端,因此要求编写 PLC 的ModBusTCP客户端

2、先了解一下设备作为服务端的ModBusTCP网络触发业务逻辑

(1)设备需要设置网络触发,并设置触发指令(假如为TR),以及ModBusTCP服务端设置如图

(2)PLC通过如图信息连接设备

(3)PLC发送指令 TR 到设备

(4)设备收到 TR 指令,与网络触发设置的TR指令比对

(5)指令一致则进行触发

(6)触发的结果写到设备端的传输地址上,需要PLC主动去访问和获取

二、官方文档与解释

1、通过上位机软件查看官方文档

如下,这里涉及到主站和从站的概念,与服务端和客户端的描述有些差异,解释如下:这个用英语比较好解释,主站MASTER还有“主管”的意思,从站SLAVE还有“奴隶”的意思。从通讯过程上来说,主站发出通讯命令,从站应答。

因此,PLC为主站,设备为从站。这个概念不要和“服务端、客户端”的概念混淆,不是一回事,只是为了利于编程的理解,在这里需要明确一下。

 2、理解主站和从站的概念后,我们应该找到PLC作为主站功能的实现文档,如下图

 

三、根据官方文档进行编程

1、连接设置

 

2、协议设置

操作路径:[工具]  [通信协议支持功能]  [文件]  [新建]  “协议设置”画面  [编辑]  [协议添加]

本次实例使用2个协议: 03:RD Holding Registers  +  WR Multi Registers

 

 

 

 

 

四、编程

 1、上述代码解释与实验

 (1)改变D403的长度为20,接收到最大的长度为20,程序设置为:

 (2)改变D402的赋值为10,即设备的取值地址为10到20的区域(11个数据),程序设置为:

 (3)连接编号的对应关系

 

(5)协议号的对应关系

 (6)设备站号为1,程序设置为:

 (7)基于上述操作,我们实现了PLC对设备的读操作

(8)增加WR Multi Registers协议,并下发到PLC中

(9)代码

 

 

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

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

相关文章

SQL 语法速成手册

基本概念 数据库术语 数据库(database):保存有组织的数据的容器(通常是一个文件或一组文件)。数据表(table) :某种特定类型数据的结构化清单。模式(schema)…

JAVA SCRIPT设计模式--创建型设计模式之抽象工厂(1)

JAVA SCRIPT设计模式是本人根据GOF的设计模式写的博客记录。使用JAVA SCRIPT语言来实现主体功能,所以不可能像C,JAVA等面向对象语言一样严谨,大部分程序都附上了JAVA SCRIPT代码,代码只是实现了设计模式的主体功能,不代…

这俩个技巧 解决了90%的冲突

解决冲突的关键技巧 关于本书作者: 达纳.卡斯帕森,冲突调节的专家,尚普兰大学人际冲突专业的硕士。三次获得芭蕾舞国际协会搬的最佳舞者奖。 关于本书: 这是一本引导别人如何化解一段冲突,达成一次有效沟通的社交类…

DataX 及 DataX-Web 安装使用详解

文章目录一、DataX安装1、解压datax.tar.gz2、运行自检脚本二、Datax-Web安装1、解压DataXWeb安装包2、执行一键安装脚本3、启动服务前段时间在项目上使用了阿里的离线数据同步工具datax,在大批量的表同步过程中踩了一些坑,所以详细介绍一下,…

五、伊森商城 前端基础-Vue Vue脚手架原理与使用 p27

目录 Vue项目结构 一、使用vue脚手架进行模块化开发 1、main文件 1.1、首先new Vue创建了一个vue实例,这个实例挂载了index.html中的app元素 1.2、使用了路由,这个路由是简写的写法 1.3、components使用了一个组件叫App 1.4、最终渲染 2、App.vu…

卷积神经网络相关模型

卷积神经网络相关模型1. CNN架构2. CNN架构模型2.1LeNet模型2.2Alexnet模型2.3VGG16模型2.3.1 使用多层小卷积核代替一层大的卷积核优点2.3.2 使用1*1卷积核优点2.3.2 模型特点卷积神经网络基本概念相关知识连接 卷积神经网络基本概念相关知识连接 1. CNN架构 模型分为2部分【…

ubuntu1804在rviz中显示kitti数据集的2D检测框和激光雷达的3D检测框

之前所做的工作参考上篇博客ubuntu1804发布kitti数据集的gps资料,imu资料(包含发布图片,点云过程)_FYY2LHH的博客-CSDN博客 本次将详解如何在ros播放的kitti数据集上作出检测框,首先需要知道的是对于kitti数据集中的每一帧都必须提前进行标注,而这个工作已经被别人完成了…

42. Python range函数—生成器函数

42. range函数—生成器函数 文章目录42. range函数—生成器函数1. 什么是range( )函数2. 回顾列表切片的语法3. range( )函数的语法3. range函数实操3.1 只有1个参数3.2 有2个参数3.3 有3个参数3.4 步长为负数4. list不能完全替代range5. 总结1. 什么是range( )函数 range[reɪ…

基于遗传算法在机器人路径规划中的应用研究(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

第十七章 优先队列优化Dijkstra算法

第十七章 优先队列优化Dijkstra算法一、普通dijkstra算法的缺陷1、选出最小距离的过程:2、松弛所有点的过程:二、如何优化1、代码模板(1)问题:(2)模板:2、详细解读三、优化分析1、使…

5G赋能行业应用,助推数智化转型!

导语 | 5G 技术的蓬勃发展推动其行业应用的巨轮乘风破浪、扬帆启航,5G 技术不断落地布局于各行各业,基础建设也不断完善,5G to B 的时代已经到来。此次,我们邀请到了中国电信研究院工业互联网技术研发部主任、腾讯云 TVP 谭华老师…

知识图谱-KGE-语义匹配-双线性模型(打分函数用到了双线性函数)-2014:TATEC

【paper】 Effective Blending of Two and Three-way Interactions for Modeling Multi-relational Data 【简介】 本文是法国 Antoine Bordes 团队发表在 ECML-PKDD 2014 上的工作,提出了 TATEC(Two and Three-way Embeddings Combination)…

ERP+MES集成管理系统重要性有哪些?

随着企业信息化观念的提升,管理方式也愈来愈信息化,因此以信息化推动企业的不断发展趋势已变成企业存活和发展的主要核心理念。其中ERP 系统和 MES 系统在企业发展和改革中起着非常重要的作用。当各种信息化系统在企业内各个部门顺利执行的同…

RabbitMQ安装教程(超详细)

本教程是在centos8下试验的,其实linux系统的都差不多 RabbitMQ官方:Messaging that just works — RabbitMQ RabbitMQ是开源AMQP实现,服务器端用Erlang语言编写,Python、Ruby、 NET、Java、JMS、c、PHP、action screcrive AMQP …

python 爬虫入门该怎么学习?

前言 1、什么是爬虫和爬虫的基本逻辑 “爬虫”是一种形象的说法。互联网比喻成一张大网,爬虫是一个程序或脚本在这种大网上爬走。碰到虫子(资源),若是所需的资源就获取或下载下来。这个资源通常是网页、文件等等。可以通过该资源…

Android NDK 开发之 CMake 必知必会

Android Studio 从 2.2 版本起开始支持 CMake ,可以通过 CMake 和 NDK 将 C/C 代码编译成底层的库,然后再配合 Gradle 的编译将库打包到 APK 中。 这意味就不需要再编写 .mk 文件来编译 so 动态库了。 CMake 是一个跨平台构建系统,在 Android Studio 引…

12月7日 补充数据库链式操作,只生成sql语句,不执行sql的几种函数以及thinkphp中验证器

补充知识: 生成sql语句但是不会执行sql语句 public function fetchSqlTest(){$result Db::name(user)->fetchSql(true)->select();//dump($result);//使用正常select查询默认中select(true)改为false即可返回sql语句$result Db::name(user)->…

UNIX/LINUX操作系统内核结构

通用操作系统的现状和分类 UNIX操作系统的根本特点:分时多用户、开放性 基本功能特征 系统结构 操作系统核心 系统调用的集合及实现系统调用的内部算法就形成操作系统核心 系统调用 以函数形式提供给核外的命令和上层应用系统使用的一组程序,涵…

观察者模式

目录 一、观察者模式解决了哪些问题: 二、体检的小栗子 三、什么是观察者模式 四、代码实现 一、观察者模式解决了哪些问题: 对象之间的一对多依赖关系应该在不使对象紧密耦合的情况下定义。应该确保当一个对象改变状态时,自动更新无限数…

5-5:显示系统的通知

通知列表 显示评论、点赞、关注三种类型的通知。 通知详情 分页显示某一类主题所包含的通知。 未读消息 在页面头部显示所有的未读消息数量 通知存在message表里面 修改MessageMapper.java package com.nowcoder.community.dao;import com.nowcoder.community.entity.Messa…