PLC通信常用(ADS)

1 篇文章 0 订阅
1 篇文章 0 订阅

1.引用添加TwinCAT.Ads.dll文件
(见资源)
2.使用命名空间

using TwinCAT.Ads;

3.声明

TcAdsClient tcAds = null;

4.定义

tcAds = new TcAdsClient();

5.连接端口

tcAds.Connect(801);// twincat2用的801,twincat3用的851

6.创建变量句柄
6.1 声明通信变量,不管目标类型是什么类型统一 用 int 类型声明,读取后再转换成目标类型

int v = 0;

6.2 建立联系

v = tcAds.CreateVariableHandle(".GVL.v");//  .GVL.v 是PLC中的变量 twincat2 前面要加个点,twincat3则不需要

7.读变量的值 等号左边为上位机这边目标的类型,等号右边typeof中的类型对应 PLC中的类型。
7.1 bool类型

bool   bVarible = Convert.ToBoolean(tcAds.ReadAny( v ,  typeof(bool)));

7.2 string类型(不包含中文(汉字和中文符号))

string str = tcAds.ReadAny( v , typeof(string), new int[] { 80 }).ToString();

7.3 float类型

float f = tcAds.ReadAny(  v  , typeof(float));

7.4 ushort类型

int i = Convert.ToInt32(tcAds.ReadAny( v , typeof(ushort)));

7.5 包含中文(汉字和中文符号)

AdsStream dataStream = new AdsStream(80);
AdsBinaryReader binaryReader = new AdsBinaryReader(dataStream);
dataStream.Position = 0; // 将流中的当前位置复位
tcAds.Read( v , dataStream);
//twincat2的用法如下:
string str = binaryReader.ReadPlcString(Convert.ToInt32(dataStream.Length));
//twincat3的用法如下:
string str = binaryReader.ReadPlcUnicodeString(Convert.ToInt32(dataStream.Length));

8 写入值 写入的值类型必须与PLC中的变量一致

8.1 string 类型(不包含中文(汉字和中文符号))

tcAds.WriteAny( v , "str", new int[] { 80 });//str为要写入的值

8.2 ushort 类型,float类型,bool类型。。。

类型 o  =;
tcAds.WriteAny( v , o);

8.3 string 类型包含中文(汉字和中文符号)

AdsStream dataStream = new AdsStream();
AdsBinaryWriter binaryWriter = new AdsBinaryWriter(dataStream);
dataStream.Position = 0;
binaryWriter.WritePlcAnsiString("好的", 80);
tcAds.Write( v , dataStream );
//当向PLC写入值时,确保写入后再进行下一动作时可以使用AdsErrorCode配合TryWrite来写入值
AdsErrorCode errorcode = tcAds.TryWrite( v , dataStream, 0, 80);
if (errorcode == AdsErrorCode.NoError)
{
//接下来的行为。。。
}

9 删除句柄(联系)

 tcAds.DeleteVariableHandle( v );

10 断开连接

 tcAds.Disconnect();
 tcAds.Dispose();
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值