主页 > 新闻 > >>  正文

应用探讨

2019-03-06 16:34 来源:互联网综合 编辑:WBYUN

应用探讨


经验值:
发帖数:3972
精华帖:20
 

楼主  

应用探讨

  2011-04-07 18:32:41
主题:应用探讨——PLC间的以太网通信,选择TCP/IP还是S7

精编帖

 

借助以太网,PLC间的数据交换可以通过S7、TCP、ISO、ISO-on-TCP等传输协议来实现。而TCP/IP和S7是大家常常使用的两种典型协议,大家在使用上述两种协议通信时常常会有如下一些疑问,例如:
1,S7和TCP有什么区别?
2,S7还是TCP/IP快?
3,为什么通讯设置有些需要设置MAC、IP、TSAP等参数?
4,S7和TCP/IP需要考虑数据一致性吗?
5,S7和TCP/IP的连接资源一样吗?
6,S7-300的S7通信和S7-400的S7通信的区别?
等等。
开设本专题,期望和大家共同交流,彼此帮助,来澄清技术要点,为今后的工作带来更多便利。不局限于以上的问题,欢迎您提出任何相关的疑问或见解。
活动奖励:
此次集中交流将持续至5月4日,其中所有精华帖作者将获得加倍精华奖励积分;最终所有有效留帖的网友将获得加倍发帖积分。更多积分带给您更多奖品兑换的自由。
对于有突出发言贡献的网友,还可以在当前的可兑换奖品中免费挑选任一款奖品。
交流结束后也将专门整理重要内容,供广大网友分享参考。
预祝大家交流愉快,收获丰富!

 
火麒麟
侠圣

应用探讨


经验值:
发帖数:573
精华帖:18
 

1楼  

应用探讨

  2011-04-07 20:02:26

精华帖

  主题:回复:应用探讨——PLC间的以太网通信,选择TCP/IP还是S7

我觉得西门子PLC之间的通讯,还是S7好一些,毕竟组态更为方便快捷。
TCP的话,如果是PN口的PLC之间的OPEN IE通讯,除了程序中要调用功能块之外,还得生成UDT块配置通讯连接,较为繁琐。

但是,如果涉及到PLC和一些非西门子的上位软件之间的通讯的话,TCP的连接就太方便了,连OPC都省了,上位软件直接加一个TCP的驱动就可以了。


管理员注:本帖已被纳入此次探讨发帖整理,请。

业精于勤,行成于思

 
sunzhongjin
游民

应用探讨


经验值:
发帖数:2
精华帖:1
 

98楼  

应用探讨

  2011-04-13 13:02:13

精华帖

  主题:回复:应用探讨——PLC间的以太网通信,选择TCP/IP还是S7

关于协议通讯,我认为速度由快到慢应该是profinet(对TCP堆栈结构进行了处理)、ISO、UDP、TCP、ISO on TCP、 S7。 TCP和UDP虽同在第四层,但是有区别的,TCP保证数据能可靠并且按顺序到达,是完全可靠的连接传输,然而资源要求也比较多,结构也比较复杂。TCP首先需要在传输方的两端建立一可靠的连接(通过信号的三次握手),然后通过数据包的各项校验确保数据完全正确。做过带握手协议的底层编程会帮助理解这个问题。UDP设计初衷就是尽可能快的将数据包发送出去。所以UDP协议显得非常精简。只要建立一个包,构造一个有目标信息的IP头,然后发出去。无需连接。
3"ISO协议是面向于数据块的,而TCP/IP是面向于流的",的确,TCP包是流的,没有边界,ISO发送的是离散的对象,需要有数据结束标志。 西门子PLC的ISO on TCP是附加了RFC1006,但实际上不能说ISO on TCP就是RFC1006,因为ISO on TCP还可以附加RFC983,RFC2126等协议。 针对TSAP,他的全名应该是TCP service access point,也就是TCP的服务访问点。其实这个问题解释起来比较复杂,可以从ISO/OSI参考模型说起。这7层之间如果想通讯,就是通过SAP来完成的,不过每一层的SAP都是具有不同名字,例如IP层的SAP称为ISAP。这些是很专业的术语,OSI/ISO对应的TCP/IP的模型中,TSAP对应的就是Port,即端口号。这也就是说SAP是层层之间的寻址而且要唯一。对于ISO协议来说,没有IP层,那么意味着不能路由,所以寻址只能通过MAC地址。对于访问高层的应用程序就需要TSAP了。不过你在Step7组态时,不需要改变任何的TSAP,因为Step7自动生成了符合ISO协议的TSAP标识。这要下载这些组态信息PLC之间就可以相互识别。 我认为S7协议是一个大包,也就是MPI,PROFIBUS,Ethernet上的S7协议部有区别的,因为S7协议毕竟是第7层的协议,由于所嫁接的底层协议毕竟是不同的。所以这种多样性就是复杂性的一种体现。另外,对于细节协议,S7协议的应答十分两步的,首先是对协议层的应答,接着应答应用层,这也是它的复杂性。Step7在NetPro中作的很普遍,所以不易察觉。 ISO on TCP不需要组态MAC地址这是真的,因为应用层寻址并不是依靠MAC地址,而是依靠IP和Port来完成的。在TCP上加入不是ISO的校验机制,而是ISO的协议与其连接。因为ISO协议与TCP协议是不同的,ISO协议是面向于数据块的,而TCP/IP是面向于流的。其协议的本质就是有没有数据的结束标志。 对于SAP,不用考虑太多,它只是层与层之间的桥梁,所以向下向上都会有SAP,而在Step7中所显示的SAP往往是向上的,因为应用层毕竟是相对独立特殊的,不像TCP/IP那样普遍。在任何时候都需要建立的,只不过在TCP/IP中你看到的是端口号。 对于Step7 TCP的连接可以有两种方式,一种是通过Open IE的方法,通过功能块确定Server/Client的关系来实现动态的一种连接,也可以断开这个连接。PLC对于这个连接个数同样是有限制的。另外一种就是在NetPro中建立TCP连接,当下载组态后,连接自动建立,但这个资源不能动态释放。连接一旦建立,数据就开始通讯了。不过每个包数据的大小并不是我们决定的,而是TCP的滑动窗口算法决定的。所以使用TCP协议时,速度的快慢不是我们所能把握的。另外流的概念就是你所接收的并不一定是你所发送的。而数句块的概念所接收的一定是你所发送的。

没有最好,只有更好!

 
www123456
奇侠

应用探讨


经验值:
发帖数:2102
精华帖:81
 

热门搜索