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

软件效果如图:

相关推荐
星哥说事25 分钟前
开源综合性网络安全检测和运维工具-TscanClient
运维·web安全·开源
freyazzr25 分钟前
TCP/IP 网络编程 | Reactor事件处理模式
开发语言·网络·c++·网络协议·tcp/ip
AI风老师42 分钟前
通信网络基础概念
开发语言·网络·php
小李飞刀李寻欢1 小时前
使用kubeadm部署Kubernetes(k8s)集群的步骤
linux·服务器·ubuntu·kubernetes·k8s
运维成长记1 小时前
阿里云实践创建实例步骤
linux·运维·服务器·阿里云·云计算
边啵儿1 小时前
如何确定某个路由器的路由表?(计算机网络)
网络·计算机网络
Kusunoki_D1 小时前
Python 实现 Web 静态服务器(HTTP 协议)
服务器·前端·python
THe CHallEnge of THe BrAve1 小时前
Linux检验库是否安装成功
linux·运维·服务器
Hello.Reader1 小时前
NGINX 四层 SSL/TLS 支持ngx_stream_ssl_module
运维·nginx·ssl
勤奋的小王同学~1 小时前
(功能测试Charles)如何抓取手机http的报文
网络·网络协议·http