用SFC14来读取从站IO报错8090,大家帮忙看下我是哪里设置错了,在这里找了一上午资料没解决到,先谢谢大家了
我测试的程序上传到了百度云盘http://pan.baidu.com/s/1hs6TV5i
问题补充:
我用的是ProfiNet,SFC14不能读取ProfiNet从站的IO??ProfiNet应该使用什么功能块??
图片说明:
最佳答案
转帖:同样问题答案:
8090错误:对于指定的地址却没有被组态的模块,或超出连续的允许的长度。你可能是数据长度过长。
1、使用SFC14 DPRD_DAT(读取DP标准从站的一致性数据)时,目标区必须与通过STEP7组态时为所选的模块的组态区域的长度相同,它是解包接收,从DP从站或者PROFINET IO设备上接收连续数据;你只能访问组态的起始地址的一个模块/DP ID的数据;而使用SFC15 DPWR_DAT(自标准DP从站写入一致性数据),源区必须与组态时通过STEP7所选模块的组态的区域的长度相同;
2、对于SFC14来说,参数LADDR为对方数据起始地址,其实就是本地要接收的解包数据存放在对方的起始地址,数据类型为“WORD’(字),必须以十六进制格式表示,如对方起始地址为256(在硬件组态界面中,比如变频器MM440挂在S7-300CPU的DP网络上作为DP从站,MM440 发送反馈信息给主站的数据区在QB256-263(共4个字),起始地址为256(十进制)), 在输入SFC14参数时必须在”LADDR“前输入”W#16#100“,一定要注意格式和输入方式;
3、同样对于SFC15来说,参数LADDR为对方数据起始地址,其实就是对方要接收的数据存放的起始地址,数据类型为”WORD“(字),同样以MM440变频器为例,MM40 接收主站的PZD(过程数据)存放在IB256-2637(4个字),所以在LADDR参数中也必须输入”W#16#100);
4、在S7-300PLC中如需要利用SFC14”DPWR_DAT” 和SFC15”DPWR_DAT’读写过程映像中不可用的地址范围内的一致性数据时要根据不同的通信协议,它传输的一致性数据是不一样的,并不是只有32个字节限制说法:对于PROFIBUS DP最多可以支持传输32个字节一致性数据;而对于PROFINET IO(以太网)通信协议,最多支持254个字节的一致性数据传输,但SFC访问的“具有”总长度一致性区域的长度必须与编程范围匹配。
对于S7-400PLC利用SFC14”DPWR_DAT” 和SFC15”DPWR_DAT’读写一致性数据传输的字节最大长度是32个字节,并不是64个字节。
5、所以对于数据一致性指令SFC14和SFC15的问题,首先检查你的目标去和源区必须与硬件组态区域长度相同,LADDR的参数输入格式和输入方式,以及一致性数据传输时字节的限制等。无论存放(SFC14)和接收(SFC15),一定要输入对方数据的起始地址,而且LADDR参数的地址必须与你的硬件组态时的地址是对应的,这点必须注意,否则通信是不能成功的。
提问者对于答案的评价:
都检查过了。。但是仿真依然不成功,如果能提供一个仿真能成功读取的程序样例就好了。谢谢。我的邮箱29887890@qq.com
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc204534.html