TwinCAT3之Ads通讯——2、控制器间多个寄存器读写操作

TwinCAT3之Ads通讯——1、控制器和控制器间通讯_panjinliang066333的博客-CSDN博客接上一篇继续。

1、Ads功能块封装

首先复制上一节程序工程,然后打开Mast工程。将Main程序中变量和程序都删掉。

然后在PLC中添加文件夹My_Fb,在文件夹My_Fb中添加功能块MyAds_Fb。

添加功能块变量

添加adsread程序

//Ads读
adsread(
	NETID:= netID, 							//要访问设备的 NetID
	PORT:= 851, 							//对方设备端口号
	IDXGRP:= 16#00004020, 					//要访问读的数据组	16#4020:%MB	
	IDXOFFS:= nReadStartIndex, 				//要访问的数据地址 : 0开始,第nReadStartIndex个
	LEN:= SIZEOF(nReadData) , 				//目的地址(读)或者源地址(写)
	DESTADDR:=ADR(nReadData) , 				//触发信号,上升沿有效
	READ:= bRead, 							//触发信号,上升沿有效
	TMOUT:= T#2S, 
	BUSY=> , 
	ERR=> , 
	ERRID=> );

 添加adswrite程序

//Ads写	
adswrite(
	NETID:=netID , 
	PORT:=851, 
	IDXGRP:=16#00004020, 						//要访问写的数据组	16#4020:%MB
	//IDXOFFS:=16#00000005, 					//地址:从0开始,第五个
	IDXOFFS:=nWriteStartIndex, 					//地址:从0开始,第nWriteStartIndex个
	LEN:=SIZEOF(nWirteData) , 
	SRCADDR:=ADR(nWirteData) , 
	WRITE:=bwrite , 
	TMOUT:=T#2S , 
	BUSY=> , 
	ERR=> , 
	ERRID=> );

2、主程序中调用功能块

创建功能块变量

_MyAds_Fb1			:MyAds_Fb;        //从机1
_MyAds_Fb2			:MyAds_Fb;        //从机2

其它变量定义

调用功能块程序

//对从机1,读写操作
_MyAds_Fb1(
	netID:= netID1, 
	bRead:= bRead, 
	bWrite:= bWrite, 
	nReadStartIndex:= 0, 
	nWriteStartIndex:= 200, 
	nWirteData:= nWirteData, 
	nReadData=> nReadData1);
	
//对从机2,读写操作	
_MyAds_Fb2(
	netID:= netID2, 
	bRead:= bRead, 
	bWrite:= bWrite, 
	nReadStartIndex:= 0, 
	nWriteStartIndex:= 200, 
	nWirteData:= nWirteData, 
	nReadData=> nReadData2);

然后下载程序运行。

3、从机中程序

删除上节定义的变量,定义新的两个变量

	ReadData    AT%MB0			: ARRAY[0..199] OF BYTE;			//MB0-MB199
	WriteData    AT%MB200		: ARRAY[0..199] OF BYTE;			//MB200-MB399

两个从机中分别修改,然后下载运行程序。

4、测试

 读从机1

读从机2

 写操作

 测试工程下载

控制器和控制器Ads通讯-三台CX(一主两从)-制造文档类资源-CSDN下载

 

 

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Big_潘大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值