MBclient()

<< 点击显示目录 >>

主页  ModbusTCP库使用说明 > 功能块与函数说明 >

MBclient()

ModbusTCP Master功能块

参数表

clip0027

clip0028

 

调用语法 (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