关于ZAKER 融媒体解决方案 合作 加入

通过 ADS.Net 将数组从 C# 发送到 TwinCat 3

CocoaChina 11-11

我想使用 TwinCat 3 来控制阀门并使用 Visual Studio C# 来处理要显示在喷泉上的图像 , 从而制作一个自动化的图形喷泉 .

图像处理程序的最终形式是二进制数组图像 ( 附加 ) :

Image Processing Result 1

Image Processing Result 2;

我想使用图像处理的最终形式来控制机器上的阀门 ( 阀门在 1 时打开 , 阀门在 0 时关闭 ) . 我对 TwinCat 3 感到非常陌生 , 尤其是 ADS 图书馆 .

infosys beckhoff 的示例对我没有帮助 , 有人可以帮助我吗?

谢谢

最佳答案

我制作了一个示例控制台程序 , 该控制台程序在端口 851 处连接到本地 PLC, 并在 TC3 的 MAIN ( TwinCAT 3 ) 中写入了名为 " boolArray" 的 100 个布尔数组:

using System;using TwinCAT.Ads;using System.Threading;namespace WriteArrayToPLC{ class Program { static void Main ( string [ ] args ) { TcAdsClient adsClient = new TcAdsClient ( ) ; byte [ ] boolArray = new byte [ 100 ] ; // Fill array with 010101010... for ( int i = 0; i < 100; i++ ) { boolArray [ i ] = ( i % 2 != 0 ) ? ( byte ) 1 : ( byte ) 0; } // Connect to PLC try { if ( adsClient != null ) { Console.WriteLine ( "Connecting to PC" ) ; adsClient.Connect ( 851 ) ; } } catch ( Exception err ) { Console.WriteLine ( err.Message ) ; adsClient = null; } if ( adsClient != null ) { try { // Get the handle for the array int handle_array = adsClient.CreateVariableHandle ( "MAIN.boolArray" ) ; // Write the array to PLC Console.WriteLine ( "Writing the array at handle: " + handle_array.ToString ( ) ) ; adsClient.WriteAny ( handle_array, boolArray ) ; } catch ( Exception err ) { Console.WriteLine ( err.Message ) ; } // The end Console.WriteLine ( "Done" ) ; Thread.Sleep ( 3000 ) ; } } }}

此代码很好地表示了将数组写入 TC3.

以上内容由"CocoaChina"上传发布 查看原文

觉得文章不错,微信扫描分享好友

扫码分享

热门推荐

查看更多内容