FB12和FB13的配合问题
刘玉蓉
发布于2014-10-15 17:05
1670
0
标签:
我用2套PLC做了个以太网彼此数据发送,在程序中我做了一个采集DONE和NDR信号的程序,可采集信号的数据记录显示,我这个通讯功能只完成过一次通信,没找到原因,可能是FB12和FB13的使能顺序问题吧,请帮我找找原因,另外我的发送数据区和接收数据区的字节数和内部格局完全是一样的。下面有大量我的程序图,请帮下忙。
图片说明: 1,总图 2,两个程序的接收和发送对比1 3,FB12和FB13使能配合图 4,网络设置图 5,两个程序的接收和发送对比 6,DB数据区对比1 7,DB数据区对比2
佳答案
其实,这些跟你的编程有关!
我当初就是按照例子自己编写程序,测试发送成功的!
请参考以下文档:
S7400与s7300之间的用于s7连接的通讯功能块位于标准库下的系统功能块:Standard Libary-System Function Blocks-SFB14 GET--SFB15 PUT SFB12 BSEND--SFB13 BRCV这些指令来读取相互之间的数据!具体的编程方法,组态方法,参数设定,请参考以下连接:
《PLCSIM仿真s7400之间的S7通讯》
https://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=A0366
关文档:
、西门子S7-300和S7-400以太网通信视频讲座(中文):
https://www.chinakong.com/download/listdown.asp?id=6374
两个S7-400PLC之间的以太网通信主要采用以下网络协议:S通信、S5兼容通信(包括ISO传输协议、TCP、ISO_on_TCP、UDP)等。如果你的S7-400本身不带以太网接口,就需要CP443-1以太网模块。
S7 通信集成在每一个SIMATIC S7 的系统中,它独立于各个网络,可以应用于多种网络(MPI、PROFIBUS、工业以太网)。S7 通信通过不断地重复接收数据来保证网络报文的正确。如果两个PLC-400都挂在以态网上,S7 通信需要调用功能块SFB,大的通信数据可达64KB。系统功能块有:SFB8/9(USEND/URCV)(无确认的高速数据传输,不虑通信接收方的通信处理时间,因而有可能覆盖接收方的数据)、SFB12/13(BSEND/BRCV)(保证数据安全性的数据传输,当接收方确认收到数据后,传输才完成)、SFB14/15(GET/PUT)(读写通信双方的数据而无需对方编程)。如果在组态硬件S7属性时选择“Establish an active connection”(建立有效连接)时,即选择双边通信时,需要在通信双方都需要调用SFB12/13编程。如果选择“One Way’”(单边通信),只需在本地侧CPU调用SFB14/15,即可向通信对方发送数据或读取对方的数据。
在选择S5兼容通信时,可以根据以太网通信模块所支持的通信协议,选择ISO传输协议、TCP、ISO_on_TCP、UDP中之一,在“Insert New Connection”(插入新连接(如ISO transport connection(ISO传输协议)),通过调用SEND/REVEICE功能块(FC5 AG_SEND、FC6 AG_RECV)来实现传输数据,该功能块可以在打开一个块时出现的LAD/STL/FBD编辑器中,选择左边New Network(新网络)/Libraries(库)/SIMATIC_NET_CP?CP400中可以找到。
参考资料:https://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=71275&cid=1029