我想从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()”时遇到的例外情况
答案 0 :(得分:2)
如果要执行ADS远程过程调用,则需要调用功能块方法而不是程序方法。
因此,只需创建一个功能块,例如FB_AdsManager并在MAIN中声明它,如下所示:
fbAdsManager : FB_AdsManager;
FB_AdsManager具有adsRemoteCall方法(请不要忘记{attribute'TcRpcEnable'}属性)
现在您可以从程序中调用该方法:
client.InvokeRpcMethod("MAIN.fbAdsManager", "adsRemoteCall", new object[] {});