<< 点击显示目录 >> 主页 ModbusTCP库使用说明 > 功能块与函数说明 > MBclient() |
ModbusTCP Master功能块
参数表
调用语法 (Structured Text)
PROGRAM _CYCLIC
(************************************************************************)
(* Master核心调用库 *)
(************************************************************************)
FB_MBclient_0.enable := TRUE;
(* ↓↓↓此端口为Client/Master本地占用端口,无实际约束 ↓↓↓ *)
FB_MBclient_0.port := Ctrl.Para.uUsePort;
FB_MBclient_0.serverPort := Ctrl.Para.uServPort;
FB_MBclient_0.p_cfg := ADR(Para_MbTCP);
FB_MBclient_0.receive_timeout := 2000;
FB_MBclient_0.server_ip_addr := Ctrl.Para.sIP;
FB_MBclient_0.unit_id;
FB_MBclient_0();
END_PROGRAM
例程代码
PROGRAM _INIT
(************************************************************)
(* 连接Slave IP | 端口号设定 *)
(************************************************************)
Ctrl.Para.sIP := '127.0.0.1';
Ctrl.Para.uServPort := 502;
//uUsePort需注意可请求的端口资源。
Ctrl.Para.uUsePort := Ctrl.Para.uServPort + 50;
(************************************************************)
(* ModbusTCP Function Code 01 *)
(* Read Coils *)
(************************************************************)
Para_MbTCP.action_enable[5].cyclic := 1; //循环执行
Para_MbTCP.action_enable[5].single := 0; //单次执行
Para_MbTCP.action_param[5].type := 1; //指令类型
Para_MbTCP.action_param[5].start_addr := 49996; //起始地址
Para_MbTCP.action_param[5].quantity := 1; // Quantity数量上限为120。
Para_MbTCP.action_param[5].p_pv := ADR(TargetPVCode01); //目标变量
Para_MbTCP.action_param[5].timer := 10; //命令执行时间等待间隔,单位ms
(************************************************************)
(* ModbusTCP Function Code 02 *)
(* Read Input *)
(************************************************************)
Para_MbTCP.action_enable[6].cyclic := 1; //循环执行
Para_MbTCP.action_enable[6].single := 0; //单次执行
Para_MbTCP.action_param[6].type := 2; //指令类型
Para_MbTCP.action_param[6].start_addr := 49996; //起始地址
Para_MbTCP.action_param[6].quantity := 1; // Quantity数量上限为120。
Para_MbTCP.action_param[6].p_pv := ADR(TargetPVCode02);//目标变量
Para_MbTCP.action_param[6].timer := 10; //命令执行时间等待间隔,单位ms
(************************************************************)
(* ModbusTCP Function Code 03 *)
(* Read Holding Registers *)
(************************************************************)
Para_MbTCP.action_enable[7].cyclic := 1; //循环执行
Para_MbTCP.action_enable[7].single := 0; //单次执行
Para_MbTCP.action_param[7].type := 3; //指令类型
Para_MbTCP.action_param[7].start_addr := 49996; //起始地址
Para_MbTCP.action_param[7].quantity := 1; // Quantity数量上限为120。
Para_MbTCP.action_param[7].p_pv := ADR(TargetPVCode03);//目标变量
Para_MbTCP.action_param[7].timer := 10; //命令执行时间等待间隔,单位ms
(************************************************************)
(* ModbusTCP Function Code 04 *)
(* Read Input Registers *)
(************************************************************)
Para_MbTCP.action_enable[8].cyclic := 1; //循环执行
Para_MbTCP.action_enable[8].single := 0; //单次执行
Para_MbTCP.action_param[8].type := 4; //指令类型
Para_MbTCP.action_param[8].start_addr := 49996; //起始地址
Para_MbTCP.action_param[8].quantity := 1; // Quantity数量上限为120。
Para_MbTCP.action_param[8].p_pv := ADR(TargetPVCode04);//目标变量
Para_MbTCP.action_param[8].timer := 10; //命令执行时间等待间隔,单位ms
END_PROGRAM
PROGRAM _CYCLIC
(************************************************************************)
(* Master核心调用库 *)
(************************************************************************)
FB_MBclient_0.enable := TRUE;
(* ↓↓↓此端口为Client/Master本地占用端口,无实际约束↓↓↓ *)
FB_MBclient_0.port := Ctrl.Para.uUsePort;
FB_MBclient_0.serverPort := Ctrl.Para.uServPort;
FB_MBclient_0.p_cfg := ADR(Para_MbTCP);
FB_MBclient_0.receive_timeout := 2000;
FB_MBclient_0.server_ip_addr := Ctrl.Para.sIP;
FB_MBclient_0.unit_id;
FB_MBclient_0();
END_PROGRAM
PROGRAM _EXIT
END_PROGRAM