new meter
This commit is contained in:
@@ -4,83 +4,72 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/*=====================================================================================
|
||||
* Description:
|
||||
* The Modbus parameter structures used to define Modbus instances that
|
||||
* can be addressed by Modbus protocol. Define these structures per your needs in
|
||||
* your application. Below is just an example of possible parameters.
|
||||
*====================================================================================*/
|
||||
#ifndef _DEVICE_PARAMS
|
||||
#define _DEVICE_PARAMS
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
// This file defines structure of modbus parameters which reflect correspond modbus address space
|
||||
// for each modbus register type (coils, discreet inputs, holding registers, input registers)
|
||||
#pragma pack(push, 1)
|
||||
typedef struct
|
||||
{
|
||||
uint8_t discrete_input0:1;
|
||||
uint8_t discrete_input1:1;
|
||||
uint8_t discrete_input2:1;
|
||||
uint8_t discrete_input3:1;
|
||||
uint8_t discrete_input4:1;
|
||||
uint8_t discrete_input5:1;
|
||||
uint8_t discrete_input6:1;
|
||||
uint8_t discrete_input7:1;
|
||||
|
||||
// Discrete Inputs
|
||||
typedef struct {
|
||||
uint8_t discrete_input0 : 1;
|
||||
uint8_t discrete_input1 : 1;
|
||||
uint8_t discrete_input2 : 1;
|
||||
uint8_t discrete_input3 : 1;
|
||||
uint8_t discrete_input4 : 1;
|
||||
uint8_t discrete_input5 : 1;
|
||||
uint8_t discrete_input6 : 1;
|
||||
uint8_t discrete_input7 : 1;
|
||||
uint8_t discrete_input_port1;
|
||||
uint8_t discrete_input_port2;
|
||||
} discrete_reg_params_t;
|
||||
#pragma pack(pop)
|
||||
|
||||
#pragma pack(push, 1)
|
||||
typedef struct
|
||||
{
|
||||
// Coils
|
||||
typedef struct {
|
||||
uint8_t coils_port0;
|
||||
uint8_t coils_port1;
|
||||
uint8_t coils_port2;
|
||||
} coil_reg_params_t;
|
||||
#pragma pack(pop)
|
||||
|
||||
#pragma pack(push, 1)
|
||||
typedef struct
|
||||
{
|
||||
float input_data0; // 0
|
||||
float input_data1; // 2
|
||||
float input_data2; // 4
|
||||
float input_data3; // 6
|
||||
uint16_t data[150]; // 8 + 150 = 158
|
||||
float input_data4; // 158
|
||||
// Input Registers (pode manter caso use em outro driver)
|
||||
typedef struct {
|
||||
float input_data0;
|
||||
float input_data1;
|
||||
float input_data2;
|
||||
float input_data3;
|
||||
uint16_t data[150];
|
||||
float input_data4;
|
||||
float input_data5;
|
||||
float input_data6;
|
||||
float input_data7;
|
||||
uint16_t data_block1[150];
|
||||
} input_reg_params_t;
|
||||
#pragma pack(pop)
|
||||
|
||||
#pragma pack(push, 1)
|
||||
typedef struct
|
||||
{
|
||||
uint32_t holding_data0;
|
||||
uint32_t holding_data1;
|
||||
uint32_t holding_data2;
|
||||
uint32_t holding_data3;
|
||||
uint32_t holding_data4;
|
||||
uint32_t holding_data5;
|
||||
uint32_t holding_data6;
|
||||
uint32_t holding_data7;
|
||||
uint32_t holding_data8;
|
||||
uint32_t holding_data9;
|
||||
uint32_t holding_data10;
|
||||
uint32_t holding_data11;
|
||||
uint32_t holding_data12;
|
||||
uint32_t holding_data13;
|
||||
// Holding Registers (ajustado para os campos usados no ORNO 516)
|
||||
typedef struct {
|
||||
float l1_current; // 0x0016
|
||||
float l2_current; // 0x0018
|
||||
float l3_current; // 0x001A
|
||||
|
||||
float l1_voltage; // 0x000E
|
||||
float l2_voltage; // 0x0010
|
||||
float l3_voltage; // 0x0012
|
||||
|
||||
float total_active_power; // 0x001C
|
||||
float total_reactive_power;
|
||||
float active_power;
|
||||
float apparent_power;
|
||||
float reactive_power;
|
||||
} holding_reg_params_t;
|
||||
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
// Instâncias globais das estruturas
|
||||
extern holding_reg_params_t holding_reg_params;
|
||||
extern input_reg_params_t input_reg_params;
|
||||
extern coil_reg_params_t coil_reg_params;
|
||||
extern discrete_reg_params_t discrete_reg_params;
|
||||
|
||||
#endif // !defined(_DEVICE_PARAMS)
|
||||
#endif // !_DEVICE_PARAMS
|
||||
|
||||
Reference in New Issue
Block a user