前言
如大家所知,在我们通过WinCC与SIMATIC S7自动化系统进行通信时,可以通过“SIMATIC S7 Protoclo Suite”通道,此协议集里有多种网络协议和类型,如“工业以太网,MPI,Name connection,Profibus,TCP/IP等等”这些都是大家使用“SIMATIC S7 Protoclo Suite”时常用的一些方式。但SIMATIC S7 Protocol Suite 还包含一些特殊功能,如通过原始数据变量(RAWDATA)进行数据采集,通过BSEND/BRCV进行原始数据变量的大数量采集(参见下载中心文档A0204),以及通过AR_SEND进行高速数据采集(参见下载中心文档A0109)等。对于详细的步骤,在此不作阐述,可以参见下载中心文档,由于大家在使用过程中产生的一些疑问,以下对一些常见的问题进行一些解析,以便大家更好的使用。
使用Rawdata进行传送数据时,为什么经常所有数据都是0,而有时又能采集到数据?
问:使用Rawdata进行数据的传送时,为什么经常数据是0,而有时正常?
答:可能与设置传输的数据长度有关。虽然Rawdata的最大长度时65535字节,但是当我们使用Rawdata进行传送原始变量数据块时,其数据的传送必须能使用一个PDU(协议数据单元)完整地传送。而SIMATIC S7通常使用的PDU长度是有限制的:
S7-300:240个字节/PDU
S7-400:480个字节/PDU
由于一个PDU还包括了报头和附加信息,减去后可以传送的数据块字节大小为:
S7-300:208个字节/PDU
S7-400:448个字节/PDU
意味着当使用Rawdata 进行数据传送时,一个块只能是208(S7-300)或448(S7-400)字节以内,小于或等于此数据量时,WinCC是可以采集到数据的,如果大于此数据量,则WinCC中无法采集到任何数据,设置数据区长度如图1所示:表示从DB1.DBB0开始的448个字节被传送