c# - 倍福 Twincat.ADS.dll 和 C#
问题描述
我正在研究通过 C# 控制 Beckhoff PLC 的可能性。我的主要想法是使用带有 Windows 10 IoT Core 的 Raspberry Pi 并创建一个 C# 程序。现在我有一个使用 TwinCat.Ads 库运行的小型测试程序,但要让它工作,我必须在我读取或写入的 PLC 中声明变量。这需要一个昂贵的 Beckhoff 基本 CPU 模块。
我不知道是否可以仅使用 EK1100 模块通过 ADS 库直接读取或写入 IO。有谁知道这是否可能?这将使 PLC 硬件便宜很多,我也可以开始使用模型驱动开发软件,这是我调查的最终目标。
谢谢你的帮助
我第一次测试的一些代码:
adsClient = new TcAdsClient();
adsClient.Connect("5.51.69.60.1.1", 851);
string result;
var Handle = adsClient.CreateVariableHandle("GVL_GENERAL.g_sMachineNumber");
try
{
using (AdsStream adsStream = new AdsStream(30))
{
AdsBinaryReader reader = new AdsBinaryReader(adsStream);
adsClient.Read(Handle, adsStream);
result = reader.ReadPlcAnsiString(30);
}
}
解决方案
您无需购买 Beckhoff 硬件即可运行您的实验。
只需安装 twincat 工程环境,您还可以获得可以编程和测试的本地运行时。
可以通过 ads 协议读取和写入 IO,也可以从远程 PC。
在 arm 上也可以安装 twincat 运行时,实际上 Beckhoff 本身就有一整套 arm CPU PLC。不过,我从未尝试过覆盆子。知道它是否在 Windows 10 iot 下工作会很有趣。请在评论部分告诉我。
我知道在 raspberry 上可以肯定工作的是 Codesys V3,它是一个与 Twincat 3 非常相似的工程环境。您可以从他们的网站下载特殊的 codesys Raspberry pi 映像。
推荐阅读
- c++ - 在 C++ 中通过引用传递结构不会更新值
- python - python搜索并查找数组2d中的指定数字位置
- typescript - Vuex(vuex-typex)突然抛出未知动作类型
- javascript - 错误:当我打开下一个渲染页面时,找不到模块“../core-js/object/define-property”
- android - 为什么我的文本表单 sqlite 单行显示?
- c# - 如何修复 MySqlCommand AddWithValue() 未分配参数
- c++ - 添加 std::cout 行可消除内存损坏错误
- python - Python Dictionary如何替换值列表以制作字典
- swift - Firebase 数据库 - 致命错误:在展开可选值时意外发现 nil
- laravel - Ubuntu 升级后显示自动加载程序错误 - Laravel 无法正常工作