参考书中的关于网络读写的程序,上机试验是正确的。两台CPU224通过0口实现PPI通信,实现功能:甲机I0.2启动乙机的电动机星/三角单元(乙机Q0.0、Q0.1、Q0.2),I0.3用于停止;反过来乙机的I0.0启动甲机的电动机星/三角单元(甲机Q0.0、Q0.1、Q0.2),乙机I0.1用于停止。
主站程序如下:
Network 1
LD SM0.1
MOVB 16#0A, SMB30
Network 2
//
// 读网络初始化,读3号站的MB10一个字节数据
//
LD SM0.1
MOVB 16#03, VB101
MOVD &MB10, VD102
MOVB 16#1, VB106
Network 3
//
// 写网络初始化,写到3号站的QB0一个字节数据
//
LD SM0.1
MOVB 16#03, VB111
MOVD &QB0, VD112
MOVB 16#1, VB116
Network 4
//
// 通过PORT O 读操作
//
LD SM0.0
NETR VB100, 0
Network 5
//
// 把MB10数据存放在发送区,然后通过PROT 0 发送操作
//
LD SM0.0
MOVB MB10, VB117
NETW VB110, 0
Network 6
//
// 读从站信息,控制本机星/三角 主继电器
//
LD V107.0
= Q0.0
Network 7
//
// 读从站信息,控制本机星/三角 星继电器
//
LD V107.1
= Q0.1
Network 8
//
// 读从站信息,控制本机星/三角 三角继电器
//
LD V107.2
= Q0.2
Network 9
//
// 本机启动从站星/三角单元的主、星形继电器
//
LD I0.2
AN M10.0
S M10.0, 2
Network 10
//
// 对星形运行时间计时
//
LD M10.1
TON T37, 30
Network 11
//
// 时间到,转三角运行,停止星形
//
LD T37
S M10.2, 1
R M10.1, 1
Network 12
//
// 停止从站 星/三角运行命令
//
LD I0.3
R M10.0, 3
从站程序:
Network 1
//
// 定义 从站
//
LD SM0.1
MOVB 16#08, SMB30
Network 2
//
// 启动主站星/三角的主、星形继电器
//
LD I0.0
AN M10.0
S M10.0, 2
Network 3
//
// 对星形进行计时
//
LD M10.1
TON T37, 30
Network 4
//
// 时间到,启动三角运行,停止星形
//
LD T37
S M10.2, 1
R M10.1, 1
Network 5
//
// 停止主站星/三角单元
//
LD I0.1
R M10.0, 3
请教:
1、程序中,16#03、16#1参数来源?为什么设成这个参数?作用?
2、VB101、VB102、VB106、VB111、VB112、VB116 这些地址是如何选择的?是随意定义的,还是有什么根据?
3、主程序网络4和网络5中VB100、VB117、VB110的作用?在指令向导设置中用到VB100、VB110,但还是不太明白其在程序中的具体作用?
4、主站程序中网络6至8,是读取从站信息进而控制本机输出,那V107.0、V107.1、V107.2是如何起作用的?即主站是读取从站的MB10,但在主站中MB10与V107是如何对应起来的呢?
请大家帮忙!急!
最佳答案
1、程序中,16#03、16#1参数来源?为什么设成这个参数?作用?
答:16#03是PPI网络中站的地址编号,在Micro/Win中的系统块通信中设置,16#1是要读取和写入的字节数;
2、VB101、VB102、VB106、VB111、VB112、VB116 这些地址是如何选择的?是随意定义的,还是有什么根据?
这个就涉及一个网络通信的TABLE表的定义,TBL的起始地址可以随意定义,只要不和别的地址冲突就可以
TBL表的定义:
0 控制字节
1 远程站地址
2 远程站地址数据指针指向
3
4
5
6 数据长度
7 读取和写入的实际数据
3、主程序网络4和网络5中VB100、VB117、VB110的作用?在指令向导设置中用到VB100、VB110,但还是不太明白其在程序中的具体作用?
答:VB100就是定义的TBL地址,进行网络指令调用的时候要调用TBL表定义的地址,VB107,VB117就是实际读取和写入的数据
VB110就是网络写入指令的TBL表定义的起始地址;
4、主站程序中网络6至8,是读取从站信息进而控制本机输出,那V107.0、V107.1、V107.2是如何起作用的?即主站是读取从站的MB10,但在主站中MB10与V107是如何对应起来的呢?
答:VB107这个字节在TBL定义中你能看到,在表的偏移地址+7 就是实际读取到的数据的地址,VB107就是读到的实际数据的地址
研究下TBL表的定义就能回答你所有的问题
提问者对于答案的评价:
感谢大家的回答,解释的很清楚,重新看参考书时很多内容很快就理解了,非常感谢大家的帮忙!
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc348524.html