求助:S7200网络读写程序 解读

参考书中的关于网络读写的程序,上机试验是正确的。两台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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日 下午11:46
下一篇 2021年7月4日 下午11:46

相关推荐

发表回复

登录后才能评论