当前位置: 首页 > news >正文

TwinCAT3中ModbusTCP Server和C# Client连接

目录

一、硬件环境

1、设置PLC的ip地址

2、ModbusTCP软件安装

 3、PLC操作系统防火墙设置

4、网络助手连接PLC

二、创建PLC工程

 1、创建寄存器读写变量

2、添加ModbusTCP授权

 3、激活和运行工程

 三、ModbusTCP数据协议说明

1、写单个寄存器

2、读寄存器

(1)读单个寄存器

 (2)读多个寄存器

 四、C#工程创建

1、创建UI界面

2、寄存器读写操作测试

五、下载连接


一、硬件环境

1、设置PLC的ip地址

使用PLC网口1和PC电脑连接

192.168.1.31

2、ModbusTCP软件安装

使用远程桌面进入到PLC系统中,安装TF6250-Modbus-TCP.exe软件。

 3、PLC操作系统防火墙设置

设置允许modbusTCP服务穿过PLC控制器的操作系统

(1)

 (2)

(3)

 (4)

(5)

(6)

(7)

4、网络助手连接PLC

地址:192.168.1.31

端口:502

二、创建PLC工程

 1、创建寄存器读写变量

在Main程序中创建局部变量,和MW寄存器关联

PROGRAM MAIN
VARWrite_Array			AT%MW0			:ARRAY[1..10]		OF		WORD;Read_Array			AT%MW100		:ARRAY[100..110]	OF		WORD;
END_VAR

2、添加ModbusTCP授权

 3、激活和运行工程

 三、ModbusTCP数据协议说明

1、写单个寄存器

写寄存器操作,功能码15个byte数据,每个byte功能如下

写单个寄存器
buff[0]=0x00;	//事务处理标识符Hi
buff[1]=0x01;	//事务处理标识符Lo
buff[2]=0x00;	//协议标识符 0x00	
buff[3]=0x00;	//协议标识符 0x00	
buff[4]=0x00;	//后续的Byte数量
buff[5]=0x09;	//后续的Byte数量
buff[6]=0x00;	//单位标识符
buff[7]=0x10;	//功能码:写多个寄存器
buff[8]=0x30;	//起始地址-高位	0x3000->MW0		*
buff[9]=0x00;	//起始地址-低位				*
buff[10]=0x00;	//寄存器数量
buff[11]=0x01;	//寄存器数量
buff[12]=0x02;	//数据的Byte数量
buff[13]=0x00;	//写寄存器的值	256*buff[13]+buff[14]	*
buff[14]=0x6F;	//写寄存器的值				*

MW寄存器从0x3000开始。

举例说明

给MW0写879:
00 01 00 00 00 09 00 10 30 00 00 01 02 03 6F
写成功返回:
00 01 00 00 00 06 00 10 30 00 00 01

2、读寄存器

读寄存器操作,功能码12个byte数据,每个byte功能如下

buff[0]=0x00;	//事务处理标识符Hi
buff[1]=0x01;	//事务处理标识符Lo
buff[2]=0x00;	//协议标识符 0x00
buff[3]=0x00;	//协议标识符 0x00
buff[4]=0x00;	//后续的Byte数量
buff[5]=0x06;	//后续的Byte数量
buff[6]=0x00;	//单位标识符
buff[7]=0x03;	//功能码:读多个寄存器
buff[8]=0x30;	/起始地址-高位	0x3000->MW0
buff[9]=0x00;	//起始地址-低位	
buff[10]=0x00;	//读取的寄存器数量-高位
buff[11]=0x01;	//读取的寄存器数量-低位

举例说明

(1)读单个寄存器

读单个寄存器MW0值

00 01 00 00 00 06 00 03 30 00 00 01
返回
00 01 00 00 00 05 00 03 02 03 6F
返回11个字节recv[0]-recv[10],其中recv[9]、recv[10]是寄存器值高位、低位。recv[9]*256+recv[10]

 (2)读多个寄存器

读取MW0-MW2寄存器值
00 01 00 00 00 06 00 03 30 00 00 03
返回
00 01 00 00 00 09 00 03 06 03 6F 00 01 00 02
MW0的值:recv[9]=03、    recv[10]=6F
MW1的值:recv[11]=00、    recv[12]=01
MW2的值:recv[13]=00、    recv[14]=02

实际测试:一次读取一万个也是可以的

 四、C#工程创建

1、创建UI界面

 生成两台设备子界面,其中界面1为测试PLC。界面2无设备连接

2、寄存器读写操作测试

 多个寄存器的读取,一次最多读取95个寄存器。

 

五、下载连接

https://download.csdn.net/download/panjinliang066333/87549591

包含

①PLC测试程序、②C#测试程序、③测试工具、④Mobus_TCP.exe安装库文件、⑤防火墙设置说明、⑥倍福官方测试例程

 

 

相关文章:

TwinCAT3中ModbusTCP Server和C# Client连接

目录 一、硬件环境 1、设置PLC的ip地址 2、ModbusTCP软件安装 3、PLC操作系统防火墙设置 4、网络助手连接PLC 二、创建PLC工程 1、创建寄存器读写变量 2、添加ModbusTCP授权 3、激活和运行工程 三、ModbusTCP数据协议说明 1、写单个寄存器 2、读寄存器 (1&…...

【上传项目代码到Git详细步骤】

1.下载安装Git到电脑上(这里我之前已经安装好了,就不细说了)2.进入控制台安装好后右键点击桌面空白部分会多出两个菜单选项,点击第二个Git Bash Here(点击第一个你会爆炸)会弹出一个git控制台,如…...

C++回顾(十五)—— 类模板

15.1 为什么要有类模板 类模板用于实现类所需数据的类型参数化类模板在表示如数组、表、图等数据结构显得特别重要,这些数据结构的表示和算法不受所包含的元素类型的影响 15.2 单个类模板语法 注意:类模板的创建对象一定要显示调用(指明类型…...

【JavaEE初阶】第四节.文件操作 和 IO (下篇)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言三、文件内容的操作 3.1 读文件 3.1.1 使用字节流读文件 3.2 写文件 3.2.1 使用字节流写文件 …...

华为OD机试用Python实现 -【分解质因数】 2023Q1A

华为OD机试题 本篇题目:分解质因数题目示例 1输入输出示例 2输入输出Code代码编写思路最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南...

博客项目

文章目录1. 创建项目2. 数据库设计3. 前置任务3.1 拦截器3.2 统一数据格式3.3 创建一个 Constant3.4 统一异常处理3.5 密码加密4. 功能实现4.1 登录功能4.2 注册功能4.3 博客列表页 (功能实现)4.3.1 左侧框4.3.2 右侧框 (分页功能 页面显示)4.4 博客详情…...

C++基础了解-20-C++类 对象

C 类 & 对象 一、C 类 & 对象 C 在 C 语言的基础上增加了面向对象编程,C 支持面向对象程序设计。类是 C 的核心特性,通常被称为用户定义的类型。 类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法…...

多态与虚(函数)表

前言续接上回(继承),我们了解了继承是如何通过虚基表,来解决派生类和父类有相同的成员变量的情况,但是类和对象中可不只有成员变量,如果成员函数也有同名,更或者如果我们想在访问不同情况&#…...

云舟案例︱视频孪生技术赋能城市安全综合管理场景,提升城市数智化水平

随着城市化发展进程的加快,人口不断膨胀,社会安全隐患等问题日益突出,成为困扰城市建设与管理的重要难题。针对各类社会治安突出问题,城市管理部门积极推进城市信息化建设,视频监控等各类信息化采集手段为城市数字化管…...

OpenFOAM 自定义gcc和openmpi安装

Compile Logs 编译很多次了但是好久不编还是会容易遗漏细节步骤,谨以为记。 使用自己编译的编译器和openmpi而不是系统自带的 库来完成对OF 的编译 依赖包安装 编译 GCC 编译 openmpi 编译OF 1依赖包安装 先 sudo apt-get install update当然,然后安…...

2023年3.8女神节买台灯怎么挑选?台灯用什么样的比较好

最近女神节,祝广大女性朋友们节日快乐啊。娱乐之余,一些实用的东西也是非常适合作为礼物送给女性朋友哦,台灯就是其中一个不错的选择。 台灯作为一种智能家居产品,不仅可见点缀卧室房间装饰,晚上的时候开启小范围照明&…...

近亿美元:人工心脏龙头永仁心医疗完成超大额A轮融资

近日,永仁心医疗器械有限公司(以下简称“永仁心医疗”)完成近一亿美元A轮融资,由北京科兴中维生物技术有限公司(SINOVAC科兴)领投,太平(深圳)医疗健康产业私募股权投资基…...

群智能优化计算中的混沌映射

经实验证明,采用混沌映射产生随机数的适应度函数值有明显提高,用混沌映射取代常规的均匀分布的随机数发生器可以得到更好的结果,特别是搜索空间中有许多局部解时,更容易搜索到全局最优解,利用混沌序列进行种群初始化、…...

【LeetCode】剑指 Offer 25. 合并两个排序的链表 p145 -- Java Version

题目链接:https://leetcode.cn/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof/ 1. 题目介绍(25. 合并两个排序的链表) 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 【测试用例】&#xf…...

如何应对危害机房安全的这几个常见要素?

随着现代化进程的推进,各行业对计算机的依赖性日益增高,计算机系统已经成为业务系统的重要组成部分。 在这种情况下,一旦机房设备出现故障,就会影响机房的正常运行,造成严重后果。尤其是银行、证券、海关等需要实时数据…...

【bug】antd全局的主题色样式被覆盖,被修改为`antd`默认的主题色

背景: 项目本身修改了主题色,配置如下: // umi配置文件 export default {theme: {primary-color: #2F54EB, // 全局主色}, };需要对图片上传组件做封装,并在项目中统一引用,如下 import { TdsUpload } from tdsComponents;环境信息 node tiandstiandsdeMacBook…...

MySQL DDL表操作【入门到精通】

目录 一、查询创建 1、查询当前数据库所有表 2、查看指定表结构 3、查询指定表的建表语句 4、创建表结构 二、数据类型 1、数值类型 2、字符串类型 3、日期时间类型 三、表操作-案例 设计一张员工信息表,要求如下: 对应的建表语句如下&#…...

《MySQL系列-InnoDB引擎28》表-约束详细介绍

约束 1 数据完整性 关系型数据库系统和文件系统的一个不同点是,关系数据库本身能保证存储数据的完整性,不需要应用程序的控制,而文件系统一般需要在程序端进行控制。当前几乎所有的关系型数据库都提供约束(constraint)机制,该机制…...

使用docker部署宝塔环境

经常需要部署lnmp环境,宝塔是一个不错的选择,包括安装各种插件,添加网站,设置定时任务等都非常方便。这次使用docker来部署。 拉取centos镜像 docker pull centos启动容器 1.-p端口映射,-d后台运行 2. 文件夹做一下映…...

ORB_SLAM2+kinect稠密建图

下载代码:https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map 运行代码: 解压代码后,删掉作者自己编译的build文件夹(下面三个都删除): ~/ORB_SLAM2_modified/build, ~/ORB_SLAM2_modified/T…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

三体问题详解

从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求&#xff…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、👨‍🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨‍&#x1f…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...