SFC14使用指针读数问题

大家好,有个问题向大家请教一下:
我用SFC14、SFC15与第三方传感器DP通讯,PLC需要读第三方DP的64字节数据,PLC需要发送132个字节数据给第三方DP站;帮助文档说SFC14最多只能读四个连续字节的数据(图1),我读4个字节的数正常,读6个字节的就会溢出(图2),

问题1 :为什么论坛上发帖的超过4个字节读书都没有问题?
参考网址:http://www.chinakong.com/forum/disp.asp?id=56312;此贴读了7字节的数;

参考网址:http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=82309&cid=1154;此贴用了12个字节的读数;


问题2:如果SFC14只能读连续4个字节的数,我是不是需要多次调用SFC14?有没有更好的办法?

已经搜索过网络,没有找到答案,请求大家帮忙指导一下,谢谢啦。

为了方便交流,我已在论坛发帖:帖子链接:http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1319421&b_id=4&b_sid=0&s_id=0&pno=0
最好能在论坛解答一下;

图片说明:

SFC14使用指针读数问题    SFC14使用指针读数问题   

最佳答案

1、在组PROFIBUS-DP通信时常常会见到参数“Consistency”(数据的一致性),如果选“Unit”,数据的通信将以在参数“Unit”中定义的格式——字或字节来发送和接收,比如,主站以字节格式发送20字节,从站将一字节一字节地接收和处理这20字节。若数据到达从站接收区不在同一时刻,从站可能不在一个循环周期处理接收区的数据,如果想要保持数据的一致性,在一个周期处理这些数据就要选择参数“All”,通信数据大于2字节时,要调用SFC15“DPWR_DAT”(向DP标准从站写入连续数据)给数据打包,调用SFC14“DPRD_DAT”(读取DP标准从站的连续数据)给数据解包。
按照《西门子S7-400,S7-300PLC相互之间的PROFIBUS-DP通讯》文中方法组态PROFIBUS-DP通信。不同的是“Consistency”属性选择“All”。
因此,它们不能用字节、字和双字的结构来存储。这样的数据区域称之为”连续的“。在一个输入/输出模块内,用组态报文可以指定长度可达64字节或字(128字节)的数据区域。为了对这些相关的模块读或写信息,必须使用DP从站的连续的输入/输出数据区域和特殊的功能。在SIMATIC S7中,系统功能SFC14 DPRD_DAT和SFC15 DPWR_DAT是为此目的保留的。
2、详见:
、调用SFC14、SFC15块读写数据
http://tieba.baidu.com/p/3478033766

提问者对于答案的评价:
我现在是315与第三方传感器的通讯,GSD是自己做的,怀疑是可能是做得不好,谢谢大家,特别是阿鸣的作答。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc195329.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年8月18日 下午11:12
下一篇 2017年8月18日 下午11:13

相关推荐