TwinCAT 3 Ads 函数 InvokeRpcMethod() 不起作用,并给出符号 "Value is null" 的错误
TwinCAT 3 Ads function InvokeRpcMethod() doesn't work and give an error of "Value is null" for symbol
我想 call/invoke 来自 ADS 的 PLC 方法。
基于此处函数定义 (TcAdsClient.InvokeRpcMethod) 中描述的示例 [https://infosys.beckhoff.com/index.php?content=../content/1031/tcadsnetref/6358337803.html&id=]
我尝试在 PLC 端实现类似的功能,并尝试在 ADS 端调用无效,并给我一个符号错误 "Value cannot be null"。
调用方法如下
short result = (short)client.InvokeRpcMethod("MAIN", "M_Add", new object[] {(short)1, (short)4});
是 PLC 是 运行 并且客户端已连接 我能够访问其他 PLC 变量。我所尝试的只是遵循上面 link 中提供的示例代码。以下是我在 "InvokeRpcMethod()"
的电话中遇到的异常
如果要执行 ADS 远程过程调用,则需要调用功能块方法而不是程序方法。
所以只需创建一个功能块,比方说 FB_AdsManager 并像这样在 MAIN 中声明它:
fbAdsManager : FB_AdsManager;
FB_AdsManager 有一个方法 adsRemoteCall(不要忘记 {attribute 'TcRpcEnable'} 属性)
现在您可以从您的程序中调用该方法:
client.InvokeRpcMethod("MAIN.fbAdsManager", "adsRemoteCall", new object[] {});
我想 call/invoke 来自 ADS 的 PLC 方法。
基于此处函数定义 (TcAdsClient.InvokeRpcMethod) 中描述的示例 [https://infosys.beckhoff.com/index.php?content=../content/1031/tcadsnetref/6358337803.html&id=]
我尝试在 PLC 端实现类似的功能,并尝试在 ADS 端调用无效,并给我一个符号错误 "Value cannot be null"。
调用方法如下
short result = (short)client.InvokeRpcMethod("MAIN", "M_Add", new object[] {(short)1, (short)4});
是 PLC 是 运行 并且客户端已连接 我能够访问其他 PLC 变量。我所尝试的只是遵循上面 link 中提供的示例代码。以下是我在 "InvokeRpcMethod()"
的电话中遇到的异常如果要执行 ADS 远程过程调用,则需要调用功能块方法而不是程序方法。
所以只需创建一个功能块,比方说 FB_AdsManager 并像这样在 MAIN 中声明它:
fbAdsManager : FB_AdsManager;
FB_AdsManager 有一个方法 adsRemoteCall(不要忘记 {attribute 'TcRpcEnable'} 属性)
现在您可以从您的程序中调用该方法:
client.InvokeRpcMethod("MAIN.fbAdsManager", "adsRemoteCall", new object[] {});