TCP解析主机名:使用接口“itfAsyncProperty”


“itfAsyncProperty”必须在初始化期间传递。否则“ResolveHostname”同步执行,这会导致循环时间增加 图1 将此图与本文末尾的屏幕截图进行比较

  • 创建标准项目并选择 CODESYS Control Win V3 作为设备。
  • 通过网络扫描连接目标系统。

图2

  • 打开库管理器并添加以下库: Net Base Services

图3

  • 修改 PLC_PRG 如下:

声明

VAR
    fbAsyncProperty     : NBS.AsyncProperty := (tnTaskName := 'itfAsyncTask', usiTaskPrio := 75, udiTaskInterval := 1000);
    fbResolveHostname   : NBS.ResolveHostname := (itfAsyncProperty := fbAsyncProperty);
    xResolve            : BOOL;
    ipAddress           : NBS.IPv4Address;
    itfIpAddress        : NBS.IIPAddress := ipAddress;
END_VAR

实现

fbResolveHostname(xExecute:= xResolve,
                    udiTimeOut:= 10000000, //10 seconds
                    sHostname:= 'www.codesys.com',
                    itfIPAddress:= itfIpAddress);

IF fbResolveHostname.xDone THEN
    xResolve := FALSE;
END_IF

  • 将项目加载到控制器并启动它。将变量 xResolve 设置为 TRUE。

图4