C#与西门子PLC1500的ModbusTcp服务器通信1--项目背景
最近在一个120万元的项目中,涉及到modbustcp通信,我作为软件总工负责项目的通信程序开发,modbus是一个在工业自动化领域中的通信协议,可以是modbusrtu,modbusascii,modbustcp三个形式,具体来说是三个不同的数据包结构,具体的细节请读者自行熟悉,这里只讲项目中应用过程,本项目中总工设计的环境是上位机软件与PLC走modbustcp协议通信,那就是说上位机必须通过网线与PLC连接,当然中间是有交换机的,两者通信时,PLC是服务器,上位机是客户端,这个角色关系千万别搞错了,理解这个定位后,才好理解整个过程,记住:[PLC是tcp服务器,上位机是tcp客户端]
这是工控机,就是一台PC电脑,但与普通电脑不同的是,对外的接口有更多,如多个串口,USB口

这是PLC,它有网口,通过网线连接交换机

, 通信模型如下:

我简化下

服务器这边的工作:1、搭建tcp服务器,明确IP地址和端口,2、提供modbus寄存器地址和数据
客户机这边的工作:1、开发winform程序,连接服务器,2、读取和写入寄存器数据
工业软件调试中往往会遇到需要与modbus tcp设备进行通讯的情况,为减少程序设计中存在的Bug,通常我们需要对其进行简单的模拟测试,便于缩短真机调试。
本篇将会以西门子PLC1500软件搭建ModbusTCP仿真环境,并通过仿真环境,介绍基础知识及模拟实际应用中写一个简单的通信读取PLC数据方法,并简介了编写上位机的方法。
搭建ModbusTCP仿真环境可以采用以下两种方式
- ModbusSlave可以快速搭建一个ModbusTCP服务器,但这个不符合本项目需要 。
- 可以用西门子PLC来做ModbusTCP仿真环境,这个正合胃口,项目中正是西门子1500PLC
搭建西门子仿真环境,需要先前掌握这些
windows10企业版安装西门子博途V15---01准备环境
windows10企业版安装西门子博途V15---02安装软件
windows10企业版安装西门子博途V15---03安装仿真软件
windows10企业版安装西门子博途V15---04连接测试
网上看了很多使用PLC搭建MODBUSTCP服务器的文章,写得一般,都是从一个电气工程师的角度来说的,而且还不怎么样,但作为一个传统的应用软件人才来看,有些迷茫不解,很多地方糊涂,而我这个文章就不一样,不但从电气工程师来讲,更多的是从软件开发人员的角度来讲明白,能看到这个文章,你是幸运的。
软件效果如图:





相关文章:
C#与西门子PLC1500的ModbusTcp服务器通信1--项目背景
最近在一个120万元的项目中,涉及到modbustcp通信,我作为软件总工负责项目的通信程序开发,modbus是一个在工业自动化领域中的通信协议,可以是modbusrtu,modbusascii,modbustcp三个形式,具体来说是…...
Socks5代理与IP代理:网络安全与爬虫之道
1. Socks5代理的多功能性 Socks5代理是一种支持TCP和UDP协议的代理技术,适用范围广泛。不同于传统HTTP代理,Socks5代理在传输数据时更为灵活,可以满足实时数据传输的需求,适用于在线游戏、视频流等场景。此外,Socks5代…...
苹果电脑怎么录屏?步骤详解,看到就是赚到
苹果电脑作为一款受欢迎的高性能设备,不仅在日常工作中发挥着重要作用,还可以用于创造内容,如录制屏幕内容。录屏功能能够帮助用户将屏幕上的活动记录成视频,方便分享、演示或存档。可是您知道苹果电脑怎么录屏吗?通过…...
vb毕业生管理系统设计与实现
【摘要】 本毕业生管理系统是使用VB和ACCESS数据库为开发工具开发的一个全新的管理系统(MIS)。开发出的软件可以在任何一个装有VB环境的机器上运行。本毕业生管理系统包括六个子模块:用户登陆模块、学籍管理模块、学生成绩模块、毕业设计选题模块、毕业设计成绩管理模块、系…...
WPF入门到精通:4.页面增删改查及调用接口(待完善)
在WPF中,页面的增删改查可以通过使用DataGrid等控件来实现。接口的调用可以使用HttpClient或RestSharp等网络库来完成。 1.页面增删改查 使用DataGrid控件来展示数据,并通过绑定数据源来实现数据的增删改查操作。示例代码如下: XAML代码&a…...
容器和云原生(三):kubernetes搭建与使用
目录 单机K8S docker containerd image依赖 kubeadm初始化 验证 crictl工具 K8S核心组件 上文安装单机docker是很简单docker,但是生产环境需要多个主机,主机上启动多个docker容器,相同容器会绑定形成1个服务service,微服务…...
spring boot集成jasypt 并 实现自定义加解密
一. 技术需求 由于项目中的配置文件 配置的地方过多,现将配置文件统一放到nacos上集中管理 且密码使用加密的方式放在配置文件中 项目中组件使用的版本环境如下 spring cloud 2021.0.5 spring cloud alibaba 2021.0.5.0 spring boot 2.6.13 二. 技术实现 配置文…...
Qt文件系统操作和文件的读写
一、文件操作类概述 QIODevice:所有输入输出设备的基础类 QFile:用于文件操作和文件数据读写的类QSaveFile:用于安全保存文件的类QTemporaryFile:用于创建临时文件的类QTcpSocket和QUdpSocket:分别实现了TCP和UDP的类…...
MME: A Comprehensive Evaluation Benchmark for Multimodal Large Language Models
本文也是LLM系列相关文章,针对《MME: A Comprehensive Evaluation Benchmark for Multimodal Large Language Models》的翻译。 MME:一个多模态大型语言模型的综合评估基准 摘要1 引言2 MME评估套件3 实验4 分析5 结论 摘要 多模态大语言模型(MLLM&…...
学习开发振弦采集模块的注意事项
学习开发振弦采集模块的注意事项 (三河凡科科技/飞讯教学)振弦采集模块是一种用来实时采集和处理振弦信号的电子设备,在工业、航空、医疗等领域都有广泛应用。学习开发振弦采集模块需要注意以下几点: 一、硬件选择 首先需要选择…...
抵御时代风险:高级安全策略与实践
目录 网页篡改攻击 流量攻击 数据库攻击 恶意扫描攻击 域名攻击 在今天的数字时代,网站已经成为企业、机构和个人展示信息、交流互动的重要平台。然而,随着网络攻击技术的不断进步,网站也面临着各种安全威胁。本文将探讨五种常见的网络攻…...
(3)、SpringCache源码分析
1、入口说明 @EnableCaching是开启SpringCache的一个总开关,开启时候我们的缓存相关注解才会生效,所以我们@EnableCaching开始作为入口进行分析, 2、分析@EnableCaching注解 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Import(...
如何在 Ubuntu 中安装最新的 Python 版本
动动发财的小手,点个赞吧! Python 是增长最快的主要通用编程语言。其原因有很多,例如其可读性和灵活性、易于学习和使用、可靠性和效率。 目前使用的 Python 有两个主要版本 – 2 和 3(Python 的现在和未来)࿱…...
等保测评--安全物理环境--测评方法
安全子类--物理位置选择 a)机房场地应选择在具有防震、防风和防雨等能力的建筑内; 一、测评对象 记录类文档和机房 二、测评实施 1)检查机房所在建筑物是否具有建筑物抗震设防审批文档; 2)检查机房门窗是否不存在因风导致的尘土严重; 3)检查机房是否不存在雨水渗漏…...
解决jmeter导入jmx文件报错方法
有的时候我们导入别人的jmx文件,但是在导入的时候会报错,如下图: 这是缺少jmeter插件jar包所引起的,下载对应jar包放到jmeter安装目录对应的lib/ext下就可以了。可以通过插件管理工具包下载安装,也可以直接下载对应的…...
CH32V307 开启浮点后rtthread的修改
官方版本是3.1.3,而且只有整数的,开启浮点后要做一些修改,这里问了官方并贴出来方便大家使用: 首先在mounriver开启浮点,步骤: 开启浮点:ide 开启float point->rvf, floating point abi->…...
网络面试题(172.22.141.231/26,该IP位于哪个网段? 该网段拥有多少可用IP地址?广播地址是多少?)
此题面试中常被问到,一定要会172.22.141.231/26,该IP位于哪个网段? 该网段拥有多少可用IP地址?广播地址是多少? 解题思路: 网络地址:172.22.141.192 10101100.00010110.10001101.11000000 广播…...
macOS nginx部署前端项目
1、安装nginx; brew install nginx2、配置nginx,主要配置代码,服务器代理 1、配置文件地址 根目录是 macOS 文件系统的最顶层目录。您可以在 Finder 中使用快捷键 Shift Command G,然后输入 /usr,即可直接打开 /u…...
管理类联考——逻辑——真题篇——按知识分类——汇总篇——二、论证逻辑——削弱——第一节 推理论证
文章目录 第七章 削弱质疑第一节 削弱-题型1-推理论证-论证为预测结果题-削弱质疑-预测-推理论证-分类1-削弱论点真题(2019-24)-削弱质疑-预测-推理论证-分类1-削弱论点真题(2019-42)-削弱质疑-预测-推理论证-分类1-削弱论点真题(2011-32)-削弱质疑-预测-推理论证-分类…...
LoRa 网络的高效自适应数据链路层架构
介绍 LoRa 是用于实现物联网的最流行的低功耗无线网络技术之一,与 Zigbee 或蓝牙等技术相比,其优点是提供远距离通信,但数据速率较低。LoRa 是一种单通道物理层技术,LoRaWAN 在此基础上实现了更复杂的多通道网络,并具有增强的功能,例如自适应数据速率。然而,LoRaWAN 依赖…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...
Python学习(8) ----- Python的类与对象
Python 中的类(Class)与对象(Object)是面向对象编程(OOP)的核心。我们可以通过“类是模板,对象是实例”来理解它们的关系。 🧱 一句话理解: 类就像“图纸”,对…...
向量几何的二元性:叉乘模长与内积投影的深层联系
在数学与物理的空间世界中,向量运算构成了理解几何结构的基石。叉乘(外积)与点积(内积)作为向量代数的两大支柱,表面上呈现出截然不同的几何意义与代数形式,却在深层次上揭示了向量间相互作用的…...
