libmodbus 库-Server /Slave仿真程序

  为了测试4diac 的modbus 模块,编写了一个server 端的仿真程序。将代码放出了

#include 
#include 
#include 
#include 
#include 
#include 
#include "modbus.h"
#include
#include 
/*
compiller command
  clang++  -I /usr/local/include/modbus -L /usr/local/lib -lmodbus  
modbusServerSimulator.cpp -o modbusServerSimulator
*/

using namespace std; 
int main(void)
{    int s = -1;
    int i = 0;
    int rc = 0;
    modbus_t *ctx = NULL;
    modbus_mapping_t *mb_mapping = NULL;
  
     cout<<"modbus Slave"<tab_input_registers[i] = i;
    while (1)
    {
       rc = modbus_receive(ctx, query);
        if (rc > 0) {          
            modbus_reply(ctx, query, rc, mb_mapping); 
            cout<<"input registers:";
            for (int i=0;i<8;i++) 
           cout<< mb_mapping->tab_registers[i]<<":" ;
           cout<

说明

modbus 的相关数据都是放在 mb_mapping 中的。他是一个结构类型,在modbus.h 中定义

typedef struct _modbus_mapping_t {
    int nb_bits;
    int start_bits;
    int nb_input_bits;
    int start_input_bits;
    int nb_input_registers;
    int start_input_registers;
    int nb_registers;
    int start_registers;
    uint8_t *tab_bits;
    uint8_t *tab_input_bits;
    uint16_t *tab_input_registers;
    uint16_t *tab_registers;
} modbus_mapping_t;

应用软件从这个结构中读取数据。

你可能感兴趣的:(IEC61499,C++)