zoukankan      html  css  js  c++  java
  • ModbusTCP_Server之FB的建立

    (*
    1、III型Modbus TCP客户端模块
    2、为了实现通用化
    *)
    FUNCTION_BLOCK ModbusTCP_Server
    VAR_IN_OUT   
            UnitID:                       UINT;                                   //ID
            wPort:                        WORD;                              //端口
            NumBits:                      INT;                               //线圈状态寄存器个数
            NumInputBits:                 INT;                               //输入状态寄存器个数
            NumRegisters:                 INT;                               //保持寄存器个数
            NumInputRegisters:            INT;                               //输入寄存器个数
           
            //寄存器
            tab_bits:                     ARRAY[0..149] OF BOOL;             //线圈状态寄存器 1位,最高300个,客户端只写,服务端只读
            tab_inputbits:                ARRAY[0..149] OF BOOL;             //输入状态寄存器1位,最高300个,客户端只读,服务端只写 
            tab_regs:                     ARRAY[0..149] OF INT;             //保持寄存器 16位,最高300个,客户端只写,服务端只读 
            tab_inputregs:                ARRAY[0..149] OF INT;             //输入寄存器16位,最高300个,客户端只读,服务端只写  
    END_VAR
    VAR_OUTPUT
            Status:                       INT;
            error:                        UINT := 0;
    END_VAR
    VAR
            //实例化
            MBUS_TCP_SERVER:              HSMBUS.ModbusTcpService;    (* modbus tcp server *)
            bEnableServer:                BOOL;
    END_VAR
    //TCP 服务端            
    MBUS_TCP_SERVER(
                    iId:= UnitID, 
                    bEnable:= TRUE, 
                    iPort:= wPort, 
                    iConnectNums:= 10, 
                    iDiscreteInputNums:= INT_TO_UINT(NumInputBits),     //写线圈状态寄存器的大小 
                    pDiscreteInputs:= ADR(tab_bits),                  //读对方线圈状态
                    iCoilNums:= INT_TO_UINT(NumBits),          //读线圈状态寄存器的大小 
                    pCoils:= ADR(tab_bits),                  //读对方线圈状态 
                    iInputRegisterNums:= INT_TO_UINT(NumInputRegisters), //输入寄存器的大小 
                    pInputRegisers:= ADR(tab_inputregs),           //写对方寄存器
                    iRegiserNums:= INT_TO_UINT(NumRegisters),     //读取寄存器的大小 
                    pRegisers:= ADR(tab_regs),                  //读对方寄存器 
                    iStatus=> Status, 
                    iError=> error);
  • 相关阅读:
    [状压DP]JZOJ 3293 阶乘字符串
    [线段树][Splay][树状数组]JZOJ 3292 发牌
    MySQL之索引
    MySQL(二)
    mysql 练习题
    前端 jQuery
    关于vertical-align和line-height的真知灼见
    CSS语法
    HTML初识
    HTTP协议
  • 原文地址:https://www.cnblogs.com/csflyw/p/14648494.html
Copyright © 2011-2022 走看看