1

我想从 ADS 调用/调用 PLC 方法。

基于此处函数定义 (TcAdsClient.InvokeRpcMethod) 中描述的示例 [ https://infosys.beckhoff.com/index.php?content=../content/1031/tcadsnetref/6358337803.html&id=]

我尝试在 PLC 端制作类似的功能,并尝试在 ADS 端调用无效,并给我一个错误“值不能为空”的符号。

以下是如何调用该方法。

short result = (short)client.InvokeRpcMethod("MAIN", "M_Add", new object[] {(short)1, (short)4});

是的,PLC 正在运行并且客户端已连接我能够访问其他 PLC 变量。我所要做的就是遵循上面链接中提供的示例代码。以下是我在调用“InvokeRpcMethod()”时遇到的异常

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

3

如果要执行 ADS 远程过程调用,则需要调用功能块方法而不是程序方法。

所以只需创建一个功能块,比如说 FB_AdsManager 并在 MAIN 中声明它,如下所示:

fbAdsManager    : FB_AdsManager;

FB_AdsManager 有一个方法 adsRemoteCall(不要忘记 {attribute 'TcRpcEnable'} 属性)

现在您可以从程序中调用该方法:

client.InvokeRpcMethod("MAIN.fbAdsManager", "adsRemoteCall", new object[] {});
于 2019-07-03T16:11:12.597 回答