C#上位机与西门子PLC通信
文章平均质量分 75
C#与西门子PLC通信过程,上位机软件开发思想
hqwest
信息系统高级项目经理,系统集成项目经理,美国PMP认证项目经理,软件设计师,软件评测师,电子商务设计师,系统架构师,C#.NET和JAVA领域全栈开发,IT教培砖家,对标IT高薪岗位,面向在校生、IT爱好者,提供免费在线指导、串讲、答疑、视频、合作等服务
展开
-
手摸手教你撕碎西门子S7通讯协议17--【再爆肝】通讯库应用开发wpf版
这颜值是采用wpf渲染技术实现的,里面用到很多控件,有第三方控件,也有自定义控件,怎么样,比车模还漂亮吧,超过脸模。原创 2024-08-01 22:32:15 · 480 阅读 · 0 评论 -
手摸手教你撕碎西门子S7通讯协议16--【爆肝了】通讯库应用开发winform版
前面15讲,让你见识到了通讯库的强大,已经进入收尾阶段,这节来个常规应用,让前面的技能直接飞上天,我们要做的界面软件是这样的,虽然没有潘金莲漂亮,但也是玉女心惊。原创 2024-08-01 17:26:29 · 727 阅读 · 0 评论 -
手摸手教你撕碎西门子S7通讯协议15--开发自己的通讯库写数据
(1)建立TCP连接 Socket.Connect-- (2)发送访问请求 COTP-- (3)交换通信信息 Setup Communication-- (4)执行相关操作 读、写、PLC启停、时间、上传下载-原创 2024-07-31 18:31:18 · 469 阅读 · 0 评论 -
手摸手教你撕碎西门子S7通讯协议14--开发自己的通讯库读数据
(1)建立TCP连接 Socket.Connect-- (2)发送访问请求 COTP-- (3)交换通信信息 Setup Communication-- (4)执行相关操作 读、写、PLC启停、时间、上传下载-原创 2024-07-31 17:29:26 · 970 阅读 · 0 评论 -
手摸手教你撕碎西门子S7通讯协议13--使用第3方通讯库写数据
S7.NET是一个广泛应用于.NET平台的西门子PLC通信库,在使用西门子PLC进行工业自动化控制的过程中,经常利用这个工具实现与PLC进行数据交换。它为开发者提供了一系列的API函数,以便在C#、VB.NET等.NET语言中轻松实现与西门子PLC的数据交互。原创 2024-07-31 15:59:24 · 505 阅读 · 0 评论 -
手摸手教你撕碎西门子S7通讯协议12--使用第3方通讯库读数据
S7.NET是一个广泛应用于.NET平台的西门子PLC通信库,在使用西门子PLC进行工业自动化控制的过程中,经常利用这个工具实现与PLC进行数据交换。它为开发者提供了一系列的API函数,以便在C#、VB.NET等.NET语言中轻松实现与西门子PLC的数据交互。原创 2024-07-31 11:09:50 · 792 阅读 · 0 评论 -
手摸手教你撕碎西门子S7通讯协议11--S7Read读取String数据
根据前面几节读写操作,可以看到报文的组装是非常严格的,必须遵守厂家协议要求来的,这节再来试试手力,来完成读取PLC中的字符串数据,这类数据在现实中是有应用要求的,比如一个产品的序号:TU89032等情况,这时,怎么办?原创 2024-07-30 22:41:38 · 866 阅读 · 0 评论 -
手摸手教你撕碎西门子S7通讯协议10--S7Write写入float数据
C#常用的有如下一些数据类型:bool -> System.Boolean (布尔型,其值为 true 或者 false)char -> System.Char (字符型,占有两个字节,表示 1 个 Unicode 字符)byte -> System.Byte (字节型,占 1 字节,表示 8 位正整数,范围 0 ~ 255)sbyte -> System.SByte (带符号字节型,占 1 字节,表示 8 位整数,范围 -128 ~ 127)原创 2024-07-30 16:49:20 · 648 阅读 · 0 评论 -
手摸手教你撕碎西门子S7通讯协议09--S7Write写入short数据
请看报文,很明显报文比读取复杂,复杂在哪里了,一是长度变长了,二是内容变多了,这个写入可以写入连续的多个,也可以写入不同区域的数据,先从简单地开始。对于写入操作,发送报文复杂,响应报文简单,因为响应报文无非就是告诉你成功还是失败。对于读取操作,发送报文简单,响应报文复杂,因为响应报文中包含了返回的数据,需要对数据进行解析,解析时会遇到大小端,字节序,字符字节,数据类型转换等。来搞清下C#中short,int两种类型。原创 2024-07-30 16:13:06 · 984 阅读 · 0 评论 -
手摸手教你撕碎西门子S7通讯协议08--S7Write写入bool数据
请看报文,很明显报文比读取复杂,复杂在哪里了,一是长度变长了,二是内容变多了,这个写入可以写入连续的多个,也可以写入不同区域的数据,先从简单地开始。对于写入操作,发送报文复杂,响应报文简单,因为响应报文无非就是告诉你成功还是失败。对于读取操作,发送报文简单,响应报文复杂,因为响应报文中包含了返回的数据,需要对数据进行解析,解析时会遇到大小端,字节序,字符字节,数据类型转换等。报文中出现的几个附录在此展现下,以便找到对应的信息。原创 2024-07-30 15:21:39 · 862 阅读 · 0 评论 -
手摸手教你撕碎西门子S7通讯协议07--S7Read读取float数据
根据上节读取short数据,可以想想如何读取float数据,报文拼装方面要改哪些地方,希望通过这节动手,加深对报文的理解。什么是float类型,PLC中的DWORD类型就是C#中的float类型,包括有符号和无符号整数,也包括小数,比如459,-832,2.3,-5.9。原创 2024-07-30 12:08:20 · 539 阅读 · 0 评论 -
手摸手教你撕碎西门子S7通讯协议06--S7Read读取short数据
根据上节读取bool数据,可以想想如何读取short数据,报文拼装方面要改哪些地方,希望通过这节动手,加深对报文的理解。什么是short类型,PLC中的word类型就是C#中的short类型,它是指int16格式的数据,包括有符号和无符号整数,但不包括小数,比如459,-832。通过观察可以得知以下几点:1》发送报文在序号22的Transport size这个地方不同,再来看下这个具体值,S7Parameter->Item->Transport size常见值,所以应该是0x04。原创 2024-07-29 23:32:05 · 548 阅读 · 0 评论 -
手摸手教你撕碎西门子S7通讯协议05--S7Read读取bool数据
在成功完成上面的1,2,3的三个过程后,现在才是读、写、PLC启停、时间、上传下载等,读取PLC数据就是通过这个报文实现的,很明显它的报文复杂多了,结构复杂,内容复杂,参数复杂,难点在于读取后返回的报文解析数据得到PLC数据,不过没有关系,有大V在,一切so easy。先了解这个报文,后面代码中我们一条条拼起来。原创 2024-07-29 17:37:23 · 1343 阅读 · 0 评论 -
手摸手教你撕碎西门子S7通讯协议04--S7COMM请求
在成功完成上面的socket连接和COTP请求后,现在客户端还不能进行读写操作,还需要进行请求建立通信,所以客户端需要发送S7 Communicaton报文给服务端,在S7Communicaton报文中包含“通讯请求”;服务端反馈S7 Communicaton报文。原创 2024-07-29 15:24:08 · 1179 阅读 · 0 评论 -
手摸手教你撕碎西门子S7通讯协议03--COTP连接请求
在上节的socket三次握手成功之后,并不能马上进行数据交换,需要进行COTP连接请求,即客户端发送COTP报文给服务端,在COTP报文中包含“连接请求”和“Destination TSAP”,以明确CPU的机架号和槽号;服务端应答COTP报文,包含“连接确认”;这样服务端就清楚了客户端需要和哪个CPU来进行数据通讯。COTP分为两个部分,一是COTP连接包,一是COTP功能包。COTP连接包:COTP连接包主要用于建立、维护和断开COTP协议层的连接。原创 2024-07-29 12:31:01 · 1353 阅读 · 0 评论 -
手摸手教你撕碎西门子S7通讯协议02--socket连接
这里是指要建立socket的tcp连接,是tcp连接而不是udp连接,tcp连接是可靠连接,tcp连接就是要有稳定的IP地址,它是通过字节方式进行通讯,在程序中就是要创建socket对象,利用socket的方式来实现字节的发送和接收,包括解析数据,这个socket是连接谁呢?原创 2024-07-29 10:36:04 · 1303 阅读 · 0 评论 -
手摸手教你撕碎西门子S7通讯协议01--S7协议介绍
S7协议即S7 protocol,它是一种专有的通信协议,主要用于西门子S7系列PLC之间的通信, 主要用于将PLC连接到PC工作站,是西门子S7系列PLC内部集成的一种通信协议,是S7系列PLC的精髓所在,S7通信协议是指西门子公司用于其S7系列PLC(可编程逻辑控制器)之间进行通信的标准通信协议。它是一种基于串行通信方式进行通信的协议,通常采用RS485/RS232传输介质,支持点对点和多点通信方式,能够实现PLC之间的数据传输和互相控制。原创 2024-05-31 15:39:10 · 6264 阅读 · 2 评论 -
windows10企业版安装西门子博途V15---01准备环境
网上看到了很多博途安装的文章或视频,一大部分都是你抄抄,我抄抄,滥鱼充饥,一是文章思路不清晰,二是具体安装环境不一致,三是视频讲解混乱,视频不清楚,操作有错误,其中不少自称是所谓的高手,妈的,演示安装就不是一陀屎,而是两陀屎,最近本宫要用到上位机开发采集西门子PLC的通讯数据,折磨了很多地方,最后成功,网上很多资料是误人子弟,一败涂地,垃圾货,不到启不到正确的作用,还害死人。其中windows更新服务要开启,这个是安装.net3.0时必须的,网上很多文章没有说。3、重启电脑,复制博途V15的文件到硬盘上。原创 2023-06-19 11:40:21 · 2268 阅读 · 0 评论 -
windows10企业版安装西门子博途V15---02安装软件
这里根据本尊的实际经验,会有3次重启的出现,直到第4次安装才会出现桌面的图标。这是一个坑,真正的坑,网上很多文章没有写到,还以为是安装成功,而不断重启,其实,只要桌面上没有出现5个图标,就需要重新安装,明白这个吗?看这个图,这是第4次重新安装才真正开始在桌面上有图标,这才是希望,只要没有出现图标,你就重新 安装,这就是造化的过程。安装过程漫长,而且可能要重启,当出现要重启的时候,选择不要重启,而是重新执行前面的2.3步骤。3、进入解压的V15目录,管理员运行这个setup.exe文件。这样做的目的是授权。原创 2023-06-19 12:52:47 · 2200 阅读 · 0 评论 -
C#与西门子PLC1500的ModbusTcp服务器通信1--项目背景
网上看了很多使用PLC搭建MODBUSTCP服务器的文章,写得一般,都是从一个电气工程师的角度来说的,而且还不怎么样,但作为一个传统的应用软件人才来看,有些迷茫不解,很多地方糊涂,而我这个文章就不一样,不但从电气工程师来讲,更多的是从软件开发人员的角度来讲明白,能看到这个文章,你是幸运的。服务器这边的工作:1、搭建tcp服务器,明确IP地址和端口,2、提供modbus寄存器地址和数据。这是工控机,就是一台PC电脑,但与普通电脑不同的是,对外的接口有更多,如多个串口,USB口。原创 2023-08-18 14:38:34 · 1431 阅读 · 0 评论 -
windows10企业版安装西门子博途V15---04连接测试
细节很多,步骤不复杂,但是对于不会的来说,就是阻力,所以文章要写得通俗,好理解,易上手。1、打开仿真软件,创建一个1500的PLC实例,这个实例的就是说,仿真一个真实的硬件。2、打开博途V15,创建新项目。4、设置网卡地址,保存项目。原创 2023-06-19 14:31:16 · 936 阅读 · 2 评论 -
C#通过ModbusTcp协议读写西门子PLC中的浮点数
MODBUS/TCP是简单的、中立厂商的用于管理和控制自动化设备的MODBUS系列通讯协议的派生产品,显而易见,它覆盖了使用TCP/IP协议的“Intranet”和“Internet”环境中MODBUS报文的用途。协议的最通用用途是为诸如PLC,I/O模块,以及连接其它简单域总线或I/O模块的网关服务的。Modbus TCP协议是在RTU协议前面添加MBAP报文头,由于TCP是基于可靠连接的服务,RTU协议中的CRC校验码就不再需要,所以在Modbus TCP协议中是没有CRC校验码。原创 2023-09-04 09:20:36 · 9864 阅读 · 2 评论 -
C#与西门子PLC1500的ModbusTcp服务器通信3--搭建ModbusTcp服务器
转存失败重新上传取消图中各引脚定义:其中id和localport可以自己定,但那个interfaceid是64,这个不能随便改,因为读取设备有个ID号,这个参数是隐含的,也要确保与设备保持一致,如图至于那个remoteport是表示哪些外部的IP可以连接本服务器,默认情况下是全部的IP,一般不要修改,除非有特别要求,所以这里保持默认,即允许任何IP地址连接本服务器,至于ID可以理解为进程ID,范围是1-4095,不能为0,每个连接ID必须独立,本案例为1(修改起始值为1);原创 2023-08-23 11:14:57 · 7127 阅读 · 3 评论 -
C#与西门子PLC1500的ModbusTcp服务器通信2--ModbusTcp协议
Modbus TCP是一种以太网协议,它将Modbus通信协议封装在TCP/IP包内进行数据传输。它通常用于工业控制系统中,比如PLC,传感器等设备之间的数据通信。Modbus协议中,数据是通过寄存器集合的方式进行通信的。这些寄存器可以是输入寄存器、输出寄存器、保持寄存器和线圈寄存器,它们各自用于不同的功能,通信时涉及到两个角色:服务器和客户端,通常情况下是客户端主动连接服务器。原创 2023-08-20 08:43:12 · 5398 阅读 · 0 评论 -
windows10企业版安装西门子博途V15---03安装仿真软件
到此博途软件,仿真软件安装完成,下一步,创建plc程序,经过这些步骤,才把环境安装好,网上很多的资料是瞎鸡巴扯,左抄一点,右复制一点,根本没有自己动手配置这个环境,哎,不但启不到作用,还伤心浪费时间精力,B站有些也是的,不是画面不清楚,模糊看不清楚,就是声音听不清楚,操作也不到位,演示不清楚,垃圾啊,网上的东西很多是,云里雾里的,看不明白,而我的操作都是完全完美的,正确的,可行的,兼容性好,上手可理解的。设置这个网卡的IP地址与本机的物理网卡的IP地址在同一个网段,下面这个是真实物理网卡,原创 2023-06-19 13:26:36 · 4734 阅读 · 7 评论 -
C#与西门子PLC1500的ModbusTcp服务器通信4--搭建ModbusTcp客户端
客户端创建tcp client对象,然后modbus利用tcp对象创建modbus通信,然后通过不同数据类型读写PLC数据,成功了原创 2023-08-23 14:30:18 · 6560 阅读 · 8 评论