用CPU317和EM277做DP通讯。设置为缓冲区一致性。主站PQB0~15对应从站VB0~15,PIB0~15对应VB16~VB31////////
1.在这种应用场合,既然设置了缓冲区一致性,是不是就可以理解为从站VB16~VB31这个区域的数据 肯定是被“完整地”读取到了主站的PIB0~PIB15 ?
2.用SFC14/15的意义在哪里呢?说明里写着“你需要SFC14因为通过I/O和过程映像区只能读出最多4个字节”
但是既然PIB0~15这个缓冲区里的数据肯定是完整的,我用下面三种方式
A:用4个MOVE指令(双字)把缓冲区数据送到MB0~15中,
B:用SFC20把缓冲区数据整体送到MB0~15中
C:用SFC14把缓冲区数据整体送到MB0~15中
又有什么区别?
请老师指点,谢谢
最佳答案
1、CPU317和EM277做DP通讯,设置了地址映射关系,即PQB0~15对应从站VB0~15,PIB0~15对应VB16~VB31。这个地址映射关系建立后,系统会自动完成这些地址的数据交换。不需应用SFC14/15。
2、关于SFC14/15的应用:
上述CPU317和EM277做DP通讯,即S7-300与S7-200做DP通讯可以通过立地址映射来自动实现数据的交换。但S7-300与其他设备做DP通讯时,不能通过通过立地址映射来自动实现数据的交换,例如S7-300与变频器进行通讯,就需要应用SFC14/15来实现。
3、A:用4个MOVE指令(双字)把缓冲区数据送到MB0~15中;B:用SFC20把缓冲区数据整体送到MB0~15中;C:用SFC14把缓冲区数据整体送到MB0~15中;又有什么区别?
MOVE指令只是单纯的按字节、字双字为单位的传送指令,即在本存储区中传送。
SFC20是一个系统功能,调用其可实现在本存储区中以连续区域为单位进行传送。
SFC14/15是实现DP通讯所用的系统功能,是读/写通讯伙伴的数据区。
提问者对于答案的评价:
有收获,谢谢.
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc225684.html