3.3. 单边访问
可以通过SFB/FB 14 "GET",从远程CPU 中读取数据。
S7-300:在REQ 的上升沿处读取数据。在REQ 的每个上升沿处传送参数ID、ADDR_1和RD_1。在每个作业结束之后,可以分配新数值给ID、ADDR_1和RD_1 参数。
S7-400:在控制输入REQ 的上升沿处启动SFB。在此过程中,将要读取的区域的相关指针(ADDR_i)发送到伙伴CPU。远程伙伴返回此数据。在下一个SFB/FB调用处,已接收的数据被复制到组态的接收区(RD_i)中。必须要参数ADDR_i和RD_i 定义的区域在长度和数据类型方面要相互匹配。
通过状态参数NDR 数值为1 来指示此作业已完成。只有在前一个作业已经完成之后,才能重新激活读作业。远程CPU可以处于RUN 或STOP 工作状态。如果正在读取数据时发生访问故障,或如果数据类型检查过程中出错,则出错和警告信息将通过ERROR和STATUS输出表示。
通过使用SFB/FB 15 "PUT",可以将数据写入到远程CPU。
S7-300:在REQ 的上升沿处发送数据。在REQ 的每个上升沿处传送参数ID、ADDR_1和SD_1。在每个作业结束之后,可以给ID、ADDR_1和SD_1 参数分配新数值。
S7-400:在控制输入REQ 的上升沿处启动SFB。在此过程中,将指向要写入数据的区域(ADDR_i)的指针和数据(SD_i)发送到伙伴CPU。远程伙伴将所需要的数据保存在随数据一起提供的地址下面,并返回一个执行确认。必须要参数ADDR_i和SD_i 定义的区域在编号、长度和数据类型方面相互匹配。
如果没有产生任何错误,则在下一个SFB/FB 调用时,通过状态参数DONE 来指示,其数值为1。只有在Zui后一个作业完成之后,才能再次激活写作业。远程CPU可以处于RUN或STOP模式。如果正在写入数据时发生访问故障,或如果执行检查过程中出错,则出错和警告信息将通过ERROR和STATUS 输出表示。
打开SIMATIC 315PN-1 的OB1,在OB1 中依次调用FB14,FB15 如图13、图14 所示:
同样,在SIMATIC 315PN-2 的OB1 中,调用FB14/FB15。将SIMATIC 315PN-2的MB140-MB149赋值B#16#06,在SIMATIC 315PN-1 中,将FB14 的“REQ”置上升沿信号,此时SIMATIC315PN-1 的MB150-MB159 接收到B#16#06。如图15 所示。
4. 常见问题
• 两个S7-300PN CPU 之间建立S7 连接可有哪些通信方式?
答:可以有确认连接、非确认连接、单边通信
• 使用FB8/9 时,数据已发送,程序块没有错误显示,但是没收到任何数据?
答:发送区与接收缓冲区长度不一致。
• 使用FB12/13 时,发送区与接收缓冲区长度是否必须一致?
答:发送区的大小只要不超过接收缓冲区就可以。
• FB12 发送数据时,发送数据的长度由哪个参数决定?
答:发送长度由 LEN 决定。但发送数据的起始地址和Zui大长度由SD_1 决定。
上下层之间的通讯就是通过SAP来完成的,OSI/ISO中对应的TCP/IP的模型中TSAP对应的就端口(port),在s7300里面TSAP由两个字节组成,第一字节是连接数,第二个字节是机架号和cp的槽号,如默认的 TSAP 10.03的03表示是0号机架3号插槽,不知道我的解释是否清楚。
那PLC与PLC之间的通讯,TSAP地址什么意思?通讯两端的PLC建立的TSAP地址用一样吗?这个地址号是系统自动生成的,不可修改.我如何改变这个地址号呢?
TSAP(Transport Service Access Point) 传输服务访问点 。 在计算机网络当中,传输层要在用户之间提供可靠和有效的端-端(如TSAP源端->[1]TSAP目的端的传输选择)服务,必须把一个用户进程和其他的用户进程区分开,主要由传输地址来实现。 (目标用户需要这样的说明:用户标识、传输实体、主机地址和网络号码。)。这时,传输层需要定义一组传输地址,以供通信选用。传输地址用传输服务访问点(TASP)来描述。(为确保所有的传输地址在整个网络中是唯一的,传输地址规定由网络号、主机号以及主机分配的端口组成。)在层次地址构成中,一个实际的例子就是在Internet用<IP地址><端口号>表示TSAP。比如在Telnet的TSAP是中IP地址,端口23),应用层的进程始终处于监听状态,其属于静态分配TSAP。
TSAP,包含两个字节,第一个字节标识访问的资源,01是PG,02是OP,03是S7单边(服务器模式),10(hex)及以上是S7双边通讯。第二个字节是访问点,可能是CPU的槽号,CP的槽号等等。
在网络中,传输层服务访问点是开放系统模型中IP地址机制的一部分。它在会话层和网络层之间识别网络服务接入点(TSAP)。TSAP是网络地址的一部分,它用来标识主机上哪一个应用程序在接收或者发送这些分组。