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服务器的文章,写得一般,都是从一个电气工程师的角度来说的,而且还不怎么样,但作为一个传统的应用软件人才来看,有些迷茫不解,很多地方糊涂,而我这个文章就不一样,不但从电气工程师来讲,更多的是从软件开发人员的角度来讲明白,能看到这个文章,你是幸运的。

软件效果如图:

相关推荐
宁zz8 小时前
乌班图安装jenkins
运维·jenkins
无名之逆9 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
大丈夫立于天地间9 小时前
ISIS协议中的数据库同步
运维·网络·信息与通信
Dream Algorithm9 小时前
路由器的 WAN(广域网)口 和 LAN(局域网)口
网络·智能路由器
IT猿手9 小时前
基于CNN-LSTM的深度Q网络(Deep Q-Network,DQN)求解移动机器人路径规划,MATLAB代码
网络·cnn·lstm
吴盐煮_9 小时前
使用UDP建立连接,会存在什么问题?
网络·网络协议·udp
rainFFrain9 小时前
单例模式与线程安全
linux·运维·服务器·vscode·单例模式
GalaxyPokemon9 小时前
Muduo网络库实现 [九] - EventLoopThread模块
linux·服务器·c++
hyshhhh10 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
Hellc00710 小时前
轮询、WebSocket 和 SSE:实时通信技术全面指南(含C#实现)
网络