TwinCAT 3 Ads函数InvokeRpcMethod()不起作用,符号错误为“ Value is null”

时间:2019-07-02 19:13:46

标签: plc twincat

我想从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()”时遇到的例外情况

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

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

因此,只需创建一个功能块,例如FB_AdsManager并在MAIN中声明它,如下所示:

fbAdsManager    : FB_AdsManager;

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

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

client.InvokeRpcMethod("MAIN.fbAdsManager", "adsRemoteCall", new object[] {});