技术论坛

应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理

作者 主题
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
主题:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 2011-09-13 15:14:33
Modbus/TCP 是运行在TCP/IP上的Modbus 报文传输协议,通过此协议,控制器相互之间通过网络(例如以太网)和其它设备之间可以通信,Modbus/TCP 协议已经成为一通用工业网络应用层的标准,在2004 年成为国家标准,因此得到了非常广泛的应用,对于西门子而言,同样有基于Modbus/TCP的通讯解决方案,包括PLC,HMI等,开设本话题主要召集大家讨论针对S7-300/400 CPU集成PN口的Modbus/TCP通讯解决方案进行探讨,主要在以下几个方面进行交流:

1 软件包中的安装和使用
2 如何充分利用功能块库中的例子程序
3 CPU的集成PN口如何建立TCP连接,与CP又有何不同
4 不同的块库版本的区别
5 PLC与多个设备进行通讯时如何优化程序,PLC能够与多少个设备进行通讯
6 地址映射,通讯诊断
7 如何利用Open Modbus/TCP Wizard来创建参数DB
与此相关,在下载中心中推荐一篇入门文档,作为S7-300/400 CPU集成PN口的Modbus/TCP入门文档,希望能够给大家帮助
A0401 基于S7-300,400 CPU集成PN 接口 Modbus TCP通讯快速入门(更新版本V2.4)
另外西门子I&S集团也提供了基于S7-300/400 CPU集成PN口的Modbus/TCP软件包的Demo版下载,在Demo版本下通讯只能维持2小时,供大家测试之用,连接如下: [url]
http://www.industry.siemens.com/industrysolutions/global/en/IT4Industry/products/simatic_add_ons/s7_open_modbus_tcp/Pages/default_tab.aspx[/url]
希望大家能够各抒己见,一起探讨,从而能够为以后的工程项目中起到借鉴作用
Modbus/TCP协议相对于其他通讯协议来说是相对比较简单的应用层协议,因此对于用户来说开发应用程序是相对比较容易掌握的。
在本次交流过程中,我们着重讨论了如何基于S7-300/400 CPU集成PN口由用户自己开发Modbus/TCP应用程序和MModbus/TCP软件包的使用,主要涉及到如何使用软件包提供的例子程序在实际项目中利用的一些注意事项,同时大家一起分享了宝贵的现场应用经验
通过本次讨论,网友交流非常积极,可以看到大家交流了彼此使用的经验,并澄清了一些技术要点,如软件包授权,地址映射等,为以后实际项目中提供宝贵的经验,没有用过的网友也得到了学习和提高。
下面是一些基于软件包使用的相关注意事项,在实际的第三方设备与CPU的集成PN口进行通讯时需要注意以下几点:
1) 由于订货号2XV9450-1MB02程序中会占用CPU 较大的装载和工作存储区,因此对于性能比较低特别是S7-300的低端CPU进行通讯时必须考虑一定的富余量。
2) 对于SIMATIC S7这边,参数DB_x的数据区必须使用不同的DB 块,使用同一个DB的不同地址区会造成地址编排混乱,另外参数Start_x与END_x 参数不能出现地址叠加情况
3) 第三方设备的数据区与SIMATIC S7的数据DB块的地址对应关系可以先按照第三方的数据区域Modbus地址的偏移关系之后计算相应的偏移量
4)建议使用项目中的样例程序,只须修改连接ID,定义通讯双方的IP地址、端口号及相应的数据存储区等,能减少编程量,只须把样例程序放到一个单独的FC块中即可,样例程序中定义了足够的数据区,连接成功及错误次数指示等
5) Modbus TCP每一包的数据最多只能发送125个寄存器或2000个比特位,超过该范围必须进行分包处理
6) S7-300/400作为Client能与多少个Server建立通讯或者作为Server时能与多少个Client通讯取决于产品所支持的TCP连接数,Modbus/TCP协议并没有对此进行约束和限制
7)如果使用SIMATIC作为Modbus服务器,那么一些CPU的可用端口号会受到限制,以下端口号可用于本地端口,如下图所示:



详细情况可参考以下FAQ连接:
http://support.automation.siemens.com/CN/view/zh/34010717

以下为本次探讨的发帖整理,查看原始交流内容请点击此处
 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=903161&pno=1&b_id=4&s_id=24

总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 1楼 2011-09-13 15:22:18
quote:以下是引用www123456在2011-08-17 13:01:30的发言:
S7控制器通过CPU集成PN口和第三方设备间建立MODBUS/TCP通讯需要软件包MODBUS TCP PN“2XV9 450”-1MB02(V2.4),单授权(仅对一个CPU有效),支持功能码1、2、3、4、5、6、15、16,对300和400集成口CPU都适用。

 
以下网友喜欢您的帖子:

  
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 2楼 2011-09-13 15:22:39
quote:以下是引用火麒麟在2011-08-17 14:26:53的发言:
我想说一下不依靠软件包的实现方式:
ModbusTCP,相对于TCP来说无非就是在应用层上加上了Modbus的功能码。
而ModbusTCP的报文规范和Modbus很像,而且没有CRC校验,而是采用TCP/IP校验机制来验证分组交换的准确性。
1.调用FB63--FB66功能块和第三方建立TCP连接。参考文档《用于S7-300/400系统和标准功能的系统软件》的第23章:通过工业以太网的开放式通讯
2.根据报文规范编写程序。客户端的非常简单,服务端麻烦一些,对于工程上的应用,基本就是03,05,16的功能。

附件中是中文版的ModbusTCP报文规范,有兴趣的可以看一下:
点击此处查看附件

 
以下网友喜欢您的帖子:

  
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 3楼 2011-09-13 15:22:55
quote:以下是引用火麒麟在2011-08-17 14:58:54的发言:
关于问题3:CPU的集成PN口如何建立TCP连接,与CP又有何不同 ?
1.CP卡通过NETPRO组态连接,通过SEND/RECEIVE接口通讯;而PN口CPU通过调用系统功能块FB63-FB66来建立连接
2.CP通过NETPRO建立的连接不需编程,连接信息保存在SDB内,这是一种静态的连接,通讯资源永久占用,而且下载NETPRO配置信息需要停机,所以PLC运行时不能增加和减少连接;而PN口CPU通过OPEN IE建立的连接需要编程,可以通过程序建立和断开连接,这是一种动态连接,通讯资源可以随时释放。

 
以下网友喜欢您的帖子:

  
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 4楼 2011-09-13 15:23:10
quote:以下是引用掠影匆匆在2011-08-19 08:34:27的发言:
quote:以下是引用火麒麟在2011-08-18 21:19:50的发言:
关于楼上的第5个,为什么一包数据最多只能发送125个寄存器而不是126个呢?


这是由Modbus TCP的协议规范所约束的,另外涉及到具体产品的话这个数字还会进一步缩小

 
以下网友喜欢您的帖子:

  
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 5楼 2011-09-13 15:23:26
quote:以下是引用www123456在2011-08-19 09:10:30的发言:
软件包 支持功能玛
CP: 2X8450-1MB00 3、4、16
集成PN: 2X8450-1MB02 1、2、3、4、5、6、16

 
以下网友喜欢您的帖子:

  
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 6楼 2011-09-13 15:23:54
quote:以下是引用www123456在2011-08-19 09:53:58的发言:
1、由于MODBUS的内部地址编排时基于数据链路层和应用层有一定的映射关系,因此MODBUS的地址与SIMATIC中的DB块的地址按照一定的地址映射关系来相对应。
2、DB块中有一定的地址偏移量,需要根据通信伙伴设备的说明来定义,因为不同的设备其偏移量是不同的,例如


 
以下网友喜欢您的帖子:

  
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 7楼 2011-09-13 15:24:06
quote:以下是引用火麒麟在2011-08-19 10:26:14的发言:
如何用PN口CPU实现ModbusTCP客户端的功能,请参考这个帖子,冬日大侠做过实验的,很详细也很简单:
http://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=4&a_id=683603&s_id=0&num=0#anch


 
以下网友喜欢您的帖子:

  
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 8楼 2011-09-13 15:24:27
quote:以下是引用掠影匆匆在2011-08-19 15:43:08的发言:
quote:以下是引用火麒麟在2011-08-19 09:49:45的发言:
quote:以下是引用掠影匆匆在2011-08-19 08:34:27的发言:
quote:以下是引用火麒麟在2011-08-18 21:19:50的发言:
关于楼上的第5个,为什么一包数据最多只能发送125个寄存器而不是126个呢?


这是由Modbus TCP的协议规范所约束的,另外涉及到具体产品的话这个数字还会进一步缩小

按照ModbusTCP的报文规范,有一个字节代表返回字节的数量,一个字节最大255,又因为返回寄存器字节数都是偶数,所以最大254,而报文的第六个字节是后续所有字节的数量,最大也为255,除去设备地址、功能码、返回字节数3个字节,所以理论请求数量应该为(255-3)/2=126个,不知道报文规范为何限制为125个

Modbus PDU长度
◆ Modbus最初在串行链路上的实现(最大RS485ADU=256字节)限制
了Modbus PDU的长度

◆ 因此,对串行链路通信来说,Modbus PDU=256-服务器地址(1字节)-
CRC(2字节)=253字节

◆从而:
RS232 / RS485 ADU = 253字节+服务器地址(1字节) + CRC (2字节)=
256字节
TCP Modbus ADU = 253字节+ MBAP (7字节) = 260字节
◆从而Modbus TCP PDU=253字节-功能码(1字节)-返回的字节数(1字节)=251字

◆故纯寄存器数量=251/2(四舍五入)=125字节
其实最主要的原因还是Modbus TCP的PDU是基于串口的RTU来实现的

 
以下网友喜欢您的帖子:

  
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 9楼 2011-09-13 15:24:47
quote:以下是引用www123456在2011-08-21 20:25:54的发言:
在实际的使用中,Modbus/TCP 使用的通讯资源端口号
以下通信端口可用于 Modbus/TCP 协议:
在 Modbus 服务器中按缺省协议使用 502 通信端口,在 Modbus客户机程序
中设置任意通信端口,端口号从 2000 开始可以使用,一般建议2000以后开始使用。
如果通信伙伴为服务器设置端口号提供选择,那么通过除502 端口以外的端口都可以使用 Modbus/TCP 协议进行通讯。
如果使用 SIMATIC 作为 Modbus 服务器,那么一些 CPU 的可用端口号会受到限制。以下端口号可用于本地端口:

CPU MLFB(订货号) 软件版本 被释放的通信端口
IM151-8 6ES7 151-8AB00-0AB0 一直到 V2.6 版本 2000 到5000
IM151-8 6ES7 151-8AB00-0AB0 从V2.7 版本开始 所有
CPU 315-2PN/DP 6ES7 315-2EG10-0AB0 一直到 V2.3.4版本 2000 到5000
and
6ES7 315-2EH13-0AB0
CPU 315-2PN/DP 6ES7 315-2EH14-0AB0 从 V3.1 版本开始 所有
CPU 317-2PN/DP 6ES7 317-2EK13-0AB0 一直到 V2.3 版本 2000 到5000
CPU 317-2PN/DP 6ES7 317-2EK14-0AB0 从 V3.1 版本开始 所有
CPU 319-3PN/DP 6ES7 318-2EL00-0AB0 一直到 V2.6 版本 2000 到5000
CPU 319-3PN/DP 6ES7 318-2EL00-0AB0 从 V2.7 版本开始 所有
CPU 414-3PN/DP 6ES7414-3EM05-0AB0 V5.0从 V5.0 版本开始 所有
CPU 416-3PN/DP 6ES7416-3ER05-0AB0 V5.0从 V5.0 版本开始 所有


 
以下网友喜欢您的帖子:

  
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 10楼 2011-09-13 15:25:20
quote:以下是引用冬日在2011-08-23 10:46:42的发言:
先做作业吧:1软件包中的安装和使用-----这个软件包不是一定要安装的,软件包只是提供一简便的方法来设定接口参数而已。如果读懂了说明书,那些参数完全可以自己设定。2如何充分利用功能块库中的例子程序----例子程序实在太有用了,modbusTCP其实是建立在TCP之上的,从这点看,我们完全可以忽略掉modbus,先把通信建立起来,再按modbus的规范发送和接受数据,用这个思路去做要比两者想同时搞定的速度快得多。3CPU的集成PN口如何建立TCP连接,与CP又有何不同----带PN口的CPU是不能直接建立连接的,所以必须通过FB63-67来建立连接和通信,而CP就不必通过FB,要通过netpro来建立连接,取得连接ID号。4不同的块库版本的区别5PLC与多个设备进行通讯时如何优化程序,PLC能够与多少个设备进行通讯---不同的CPU支持的连接数是不一样的,即使是同一个型号的CPU,不一样的firmware版本也会出现不一样的情况。超出CPU能接受的连接数,就无法建立连接的,我用317-PN/DP超过后不报故障,就是不能建立连接,搞死人啊……6地址映射,通讯诊断7如何利用OpenModbus/TCPWizard来创建参数DB

 
以下网友喜欢您的帖子:

  
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 11楼 2011-09-13 15:25:56
quote:以下是引用zhouwd在2011-08-23 12:02:59的发言:
前段时间客户需要用到MODBUSTCP通信,需要通过CPU集成的通信口实现,由于西门子的软件需要授权(还需要通过网上验证),后来考虑自己编写客户端的方式来实现的。如前所述,MODBUSTCP通信本身是一种公开的通信协议,而且相对于MODBUS来说,不需要计算CRC校验,使用起来还是非常方便的另外,大家开始的时候如果对报文格式不太熟悉,可以通过标准的MODBUSTCP测试程序MODSCAN和MODSIM软件直接在计算机上模拟,并看到服务器和客户端的报文,具体可以参见上传的附件后来,又测试了西门子官方提供的服务器的程序,直接通过MODBUSTCPWiward生成相关的数据块,下载到CPU中进行测试,通过MODSCAN软件测试,通信也可以正常进行,但是CPU的SF指示灯会慢闪(2秒的周期),但是不影响通信



 
以下网友喜欢您的帖子:

  
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 12楼 2011-09-13 15:26:31
quote:以下是引用掠影匆匆在2011-08-25 08:56:26的发言:
在这给大家普及一些Modbus/TCP的基本常识:
Modbus协议在TCP/IP的实现基本原理:



TCP/IP上的Modbus数据帧

◆通过TCP/IP栈传输

◆支持以太网II和IEEE802.3帧,默认帧为以太网II帧

◆以太网II是默认的TCP/IP网络帧格式

◆数据帧包含报文头、功能代码和数据3部分,MBAP报文头(MBAP:ModbusApplicationProtocol,Modbus应用协议)分四个域,共7个字节

◆数据域是可变长的字段,具体格式和功能码密切相关



Modbu/TCPMBAP报文头



Modbu/TCP功能码与数据域

◆数据域是可变长的字段,具体格式和功能码密切相关




 
以下网友喜欢您的帖子:

  
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 13楼 2011-09-13 15:26:53
quote:以下是引用掠影匆匆在2011-08-25 09:12:13的发言:
如何通过用户程序设计实现ModbusTCP通讯?
1操作系统必须包含TCP/IP栈,在第四层中通过TCP管理模块建立TCP连接

2在应用程序中将TCP报文后的选项、填充字节及数据部分均作为UserData按照ModbusTCP报文规范进行服务器或客户端的报文封装,对于服务器还应包括异常响应报文

3完整的应用程序还应包含详细的诊断信息,多功能码及跨数据区作业等




 
以下网友喜欢您的帖子:

  
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 14楼 2011-09-13 15:27:13
quote:以下是引用掠影匆匆在2011-08-25 09:27:07的发言:

如何实现基于S7-300/400的简单用户客户机程序实现?

◆硬件:S7-300/400通讯处理器CP和CPU的集成PN口均支持TCP的连接

-通讯处理器CP通过Netpro的方式建立TCP连接,并且在程序库中有支持TCP通讯的功能块FC5(AG_Send)及FC6(AG_Recv)

-CPU集成PN口可通过OPENIE的方式建立连接

◆软件:应用程序中只要按照ModbusTCP的报文规范进行封装就可以实现ModbusTCP通讯




 
以下网友喜欢您的帖子:

  
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 15楼 2011-09-13 15:27:46
quote:以下是引用掠影匆匆在2011-08-25 09:31:07的发言:

使用S7-400CP443-1作为Client与ModbusSlave作为Server实现ModbusTCP通讯






 
以下网友喜欢您的帖子:

  
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 16楼 2011-09-13 15:28:22
quote:以下是引用www123456在2011-08-25 10:07:25的发言:
数据传输可靠性保证原因:
1、MODBUS/TCP使Modbus_RTU(remoteterminalunits)协议运行于以太网,ModbusTCP使用TCP/IP和以太网在站点间传送Modbus报文,ModbusTCP结合以态网物理网络和网络标准TCP/IP以及以Modbus作为应用协议标准的数据表示方法。
2、ModbusTCP通信报文封装于以态网TCP/IP数据包中(际上就是在tcp-ip模型上加上modbus协议内容到应用层)。与传统的串口方式不同,ModbusTCP插入一个标准的MModbus报文到TCP报文中,由于使用以太网TCP/IP数据链路层的校验机制而保证了数据的完整性,所以报文中不再带数据校验“CHECKSUM”,原有报文中的“ADDRESS”也被“UNITID”代替而加在Modbus的应用协议报文头中。
3、从以态网参考模型中,Modbus协议报文在最上层(应用层),而传输是在第4层(传输层)实现可靠性连接、传输、查错、重发、端口服务、传输调度的。(如28楼示图。)
4、另外在Modbus/TCP的报头中有个字节包含传输的数据长度,TCP/IP协议的本质就是有没有数据的结束标志,一定程度上减少了TCP/IP的“流控”传输的弱点,保证了应用层数据的安全可靠传输。如下图:



 
以下网友喜欢您的帖子:

  
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 17楼 2011-09-13 15:28:37
quote:以下是引用火麒麟在2011-08-25 11:52:14的发言:
1.关于程序块中各状态位的说明:
Done及busy信号的产生:数据的传送要途径本方发送缓存---->本方网络堆栈区---->对方网络堆栈区---->对方接收缓存;
数据只要从本方发送缓存成功的压入本方网络堆栈即认为数据已发送,即产生done上升沿信号;
如果后面的堆栈区包括对方接收缓存都满了,从本方发送缓存数据没有压栈成功,则产生busy信号。
NDR信号:NDR信号表示数据从接收缓存读取到本方数据接收区。
Done及busy信号的使用:用于程序中协调发送和接收,比如发送完成后才激活接收,接收完成后再激活发送,这样可以避免网络拥塞。
2.通讯连接的管理过程:当通讯中断时,应分清故障原因,再在程序中做相应处理:
不需要FB65“TCON”重新建立连接。
1,插拔电缆
2,伙伴断开(例如,PC)
需要FB65“TCON”重新建立连接
1,CPU启动/停止
2,电源重新上电
3,调用FB66”TDISCON”之后

 
以下网友喜欢您的帖子:

  
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 18楼 2011-09-13 15:28:55
quote:以下是引用www123456在2011-08-27 21:57:09的发言:




虽然软件包提供功能块库看上去比较复杂,但编程人员只要给数据块指定相应参数,还是比较方便易用的。由于客户端和服务器端均使用相同的功能块FB102“MODBUSPN”的参数需要初始化,因此分别在OB100及OB1中完成相关参数的初始化。
下载完硬件组态及程序后,将DB2中“MODBUS_PARAM”的参数“server_client”使能。(做客户机方式还要给参数ENQ_ENR发送脉冲信号)
编程时最好使用项目中的样例程序,只须修改连接ID,定义通讯双方的IP地址、端口号及相应的数据存储区,减少编程人员工作量。
使用时可以把样例程序放到一个单独的FC中,因为样例程序已经定义了足够的数据区、连接成功及错误次数指示等。

 
以下网友喜欢您的帖子:

  
总坛主
西门子官方工程师

经验值: 23712
发帖数: 3792
精华帖: 8
回复:应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理


只看楼主 楼主 19楼 2011-09-13 15:29:18
quote:以下是引用火麒麟在2011-08-28 11:35:52的发言:
quote:以下是引用单格在2011-08-28 11:15:07的发言:
这个单元标识符应该就是从站地址吧,那么这个地址咋设的?和IP地址又是啥子关系呢?

这个单元标识符不用设置,具体的地址是通过IP来确定的。


 
以下网友喜欢您的帖子:

  
收起
应用探讨——基于S7-300/400 CPU PN口的Modbus/TCP通讯—发帖整理
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。