问题补充:
通过 PROFIBUS DP 进行数据通讯,这方面的资料我已经看过,就是对程序的编写有疑问。是不是只需要在调用sfc14和sfc15两个模块呢?
最佳答案
1.S7-300与S7-200通过EM277进行PROFIBUS DP通讯,需要在STEP7中进行S7-300站组态,在S7-200系统中不需要对通讯进行组态和编程,只需要将要进行通讯的数据整理存放在V 存储区与S7-300的组态EM277从站时的硬件I/O地址相对应就可以了。
2.S7200与S7300之间采用MPI通讯方式时, S7200 PLC中不需要编写任何与通讯有关的程序,只需要将要交换的数据整理到一个连续的V 存储区当中即可,而S7300中需要在OB1(或是定时中断组织块OB35)当中调用系统功能X_GET(SFC67)和X_PUT(SFC68),实现S7300 与S7200之间的通讯,调用SFC67和SFC68时VAR_ADDR参数填写S7200的数据地址区,这里需填写P#DB1.××× BYTE n 对应的就是S7200 V存储区当中VB××到VB(××+n)的数据区。例如:
将200的MD10读到300的MD205中,并将300的MD225写到200的MD20中
NETWORK
TITLE =
O M 0.0;
ON M 0.0;
S M 200.0;
S M 200.1;
L 6;
T MW 201;
NETWORK
TITLE =
CALL "X_GET" (
REQ := M 200.0,//启动读操作
CONT := M 200.1,
DEST_ID := MW 201,//读取对象的MPI地址
VAR_ADDR := MD 10,//读取的区域为读取对象的数据区MD10
RET_VAL := MW 203,
BUSY := M 200.2,
RD := MD 205);//将读取对象的数据区MD10中的内容读取到本机的MD205中
NETWORK
TITLE =
O M 0.0;
ON M 0.0;
S M 210.0;
S M 210.1;
L MB 170;
T MB 225;
NETWORK
TITLE =传送数据
CALL "X_PUT" (
REQ := M 210.0,//启动写操作
CONT := M 210.1,
DEST_ID := MW 201,//目标对象MPI地址
VAR_ADDR := MD 20,//目标象中数据将被写入的区域
SD := MD 225,//要写入的数据在本机中的存贮区域
RET_VAL := MW 213,
BUSY := M 210.2);
提问者对于答案的评价:
我做的是关于DP的,MPI的不需要,虽然前几位说了不少,但是对程序还是有疑惑,不清楚具体使用哪些,希望能早点调出来。
专家置评
是否调用SFC14/15是根据所传输的数据一致性要求,如果没有一致性要求,可以直接使用EM277分配的地址,如L IBxx,T QBxx。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc177326.html