C#与西门子PLC1500的ModbusTcp服务器通信1--项目背景

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

这是工控机,就是一台PC电脑,但与普通电脑不同的是,对外的接口有更多,如多个串口,USB口

C#与西门子PLC1500的ModbusTcp服务器通信1--项目背景_第1张图片

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

C#与西门子PLC1500的ModbusTcp服务器通信1--项目背景_第2张图片

, 通信模型如下:

C#与西门子PLC1500的ModbusTcp服务器通信1--项目背景_第3张图片

 我简化下

C#与西门子PLC1500的ModbusTcp服务器通信1--项目背景_第4张图片

 服务器这边的工作: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--项目背景_第5张图片C#与西门子PLC1500的ModbusTcp服务器通信1--项目背景_第6张图片

C#与西门子PLC1500的ModbusTcp服务器通信1--项目背景_第7张图片

 C#与西门子PLC1500的ModbusTcp服务器通信1--项目背景_第8张图片

 C#与西门子PLC1500的ModbusTcp服务器通信1--项目背景_第9张图片

 

你可能感兴趣的:(C#上位机开发笔记,服务器,网络,运维,PLC,操作演示)