增加新代码

main
jxjajs 6 months ago
parent 446e5040de
commit 7298bd64ff

@ -12,23 +12,37 @@
#define CMD_SEND_PRI_DATA 16 #define CMD_SEND_PRI_DATA 16
// typedef struct
// {
// USR_MV AccPri[19];
// USR_MV AccSec[7];
// USR_MV EnvNoiPri;
// USR_MV EnvNoiSec;
// USR_MV NeuCur;
// USR_MV MoDevConf;
// USR_MV MoDevDetF;
// USR_MV MoDevSigF;
// USR_MV ModevPowF;
// USR_MV EnvNoiPriAlm;
// USR_MV EnvNoiSecAlm;
// USR_MV NeuCurAlm;
// USR_MV AccPriAlm[19];
// USR_MV AccSecAlm[7];
// }LN_SVBR_TYPE;
typedef struct typedef struct
{ {
USR_MV AccPri[19]; USR_MV AccPri[19];
USR_MV AccSec[7];
USR_MV EnvNoiPri; USR_MV EnvNoiPri;
USR_MV EnvNoiSec;
USR_MV NeuCur; USR_MV NeuCur;
USR_MV MoDevConf; USR_MV MoDevConf;
USR_MV MoDevDetF; USR_MV MoDevDetF;
USR_MV MoDevSigF; USR_MV MoDevSigF;
USR_MV ModevPowF; USR_MV ModevPowF;
USR_MV EnvNoiPriAlm; USR_MV EnvNoiPriAlm;
USR_MV EnvNoiSecAlm;
USR_MV NeuCurAlm; USR_MV NeuCurAlm;
USR_MV AccPriAlm[19]; USR_MV AccPriAlm[19];
USR_MV AccSecAlm[7]; }LN_SVBR_TYPE;
}LN_SVBR_TYPE;
extern int iec61850_rx_init(void); extern int iec61850_rx_init(void);

@ -88,7 +88,7 @@ MODBUS_BEGIN_DECLS
* (chapter 6 section 17 page 38) * (chapter 6 section 17 page 38)
* Quantity of Registers to write in R/W registers (2 bytes) 1 to 121 (0x79) * Quantity of Registers to write in R/W registers (2 bytes) 1 to 121 (0x79)
*/ */
#define MODBUS_MAX_READ_REGISTERS 125 #define MODBUS_MAX_READ_REGISTERS 300
#define MODBUS_MAX_WRITE_REGISTERS 123 #define MODBUS_MAX_WRITE_REGISTERS 123
#define MODBUS_MAX_WR_WRITE_REGISTERS 121 #define MODBUS_MAX_WR_WRITE_REGISTERS 121
#define MODBUS_MAX_WR_READ_REGISTERS 125 #define MODBUS_MAX_WR_READ_REGISTERS 125

@ -2,12 +2,13 @@
#define _MODBUS_RTU_SLAVE_H #define _MODBUS_RTU_SLAVE_H
//J24.1 J24.2 ===> A-B //J24.1 J24.2 ===> A-B
#define MODBUS_RTU_SERIAL "/dev/ttyO3" #define MODBUS_RTU_SERIAL "/dev/ttymxc1"
#define MODBUS_RTU_BAUD 38400 #define MODBUS_RTU_BAUD 38400
#define SERVER_ID 1 #define SERVER_ID 1
#define TYPE_MONITOR 0X000F
#define MODBUS_REGS_NUM 300
extern uint16_t sjzd_modbus_data[MODBUS_REGS_NUM];
//extern YSP_MODBUS_REGS ysp_modbus_data;
int modbus_rtu_slave_init(void); int modbus_rtu_slave_init(void);
void modbus_rtu_data_fresh(void *data,int is_new); void modbus_rtu_data_fresh(void *data,int is_new);

@ -9,9 +9,13 @@
#include <signal.h> #include <signal.h>
#include <stdio.h> #include <stdio.h>
#define RECVDATA_MAXLENTH 1300 /* 接收数据缓冲区最大值*/
int SerialOpen(const char *dev_name,int baud,int databit,int stopbit,int chk_mode); int SerialOpen(const char *dev_name,int baud,int databit,int stopbit,int chk_mode);
int SerialRead(int m_comFd,unsigned char *buf,int sz,int timeout); int SerialRead(int m_comFd,unsigned char *buf,int sz,int timeout);
int SerialWrite(int m_comFd,const unsigned char *buf,int sz); int SerialWrite(int m_comFd,const unsigned char *buf,int sz);
int SerialReadEx(int m_comFd,unsigned char *buf,int sz,int timeout); int SerialReadEx(int m_comFd,unsigned char *buf,int sz,int timeout);
long long get_msec(void);
#endif #endif

@ -16,7 +16,7 @@
#define MAX_PAYLOAD_SIZE 1024 #define MAX_PAYLOAD_SIZE 1024
#define FRM_MAX_LEN (MAX_PAYLOAD_SIZE+8) #define FRM_MAX_LEN (MAX_PAYLOAD_SIZE+18)
#define FRM_HEADER_LEN 4 #define FRM_HEADER_LEN 4
#define SJZD_RD_REGS 1 #define SJZD_RD_REGS 1
@ -25,6 +25,7 @@
#define SJZD_RD_FILE_CONTENT 4 #define SJZD_RD_FILE_CONTENT 4
#define SJZD_RD_FILE_END 5 #define SJZD_RD_FILE_END 5
typedef struct typedef struct
{ {
float AccPri[19]; float AccPri[19];
@ -43,6 +44,14 @@ typedef struct
int AccSecAlm[7]; int AccSecAlm[7];
}SVBR_PRI_TYPE; }SVBR_PRI_TYPE;
typedef struct
{
uint32_t has_new_data;
uint32_t new_data_len;
uint32_t data_timestamp;
uint32_t rsv;
} SLAVE_REG_TYPE;
int32_t sjzd_master_init(char *port,char *baud,char *parity); int32_t sjzd_master_init(char *port,char *baud,char *parity);
int32_t sjzd_make_frm(uint8_t *enc_buf,uint8_t slave_addr,uint8_t cmd,uint8_t *data,uint16_t data_len); int32_t sjzd_make_frm(uint8_t *enc_buf,uint8_t slave_addr,uint8_t cmd,uint8_t *data,uint16_t data_len);
@ -51,5 +60,13 @@ int32_t sjzd_chk_frm(uint8_t *buf,uint16_t len,uint8_t slave_addr,uint8_t cmd);
int32_t sjzd_reg_rd(uint8_t slave_node,uint32_t reg_addr,uint8_t *reg_tbl,uint32_t nbr_reg); int32_t sjzd_reg_rd(uint8_t slave_node,uint32_t reg_addr,uint8_t *reg_tbl,uint32_t nbr_reg);
int32_t sjzd_reg_wr(uint8_t slave_node,uint32_t reg_addr,uint8_t *reg_tbl,uint32_t nbr_reg,uint8_t *rlt); int32_t sjzd_reg_wr(uint8_t slave_node,uint32_t reg_addr,uint8_t *reg_tbl,uint32_t nbr_reg,uint8_t *rlt);
int32_t sjzd_file_rd(uint8_t slave_node,char *in_file,char *out_file); int32_t sjzd_file_rd(uint8_t slave_node,char *in_file,char *out_file);
void SJZD_file_analysis(uint8_t slave_addr,char *curr_file,float sensor_range);
int cmp(const void *a, const void *b);
void fault_up(char dev_fault);
void heartbeat(char dev_num);
int relay_init(void);
int relay_on(void);
int relay_off(void);
void sensor_fault(char slave_addr,char sensor_err);
void SJZD_file_analysis_nodata(uint8_t slave_addr);
#endif #endif

@ -7,6 +7,16 @@
#define MODBUS_TIMEOUT 10 #define MODBUS_TIMEOUT 10
typedef struct
{
int m_iRevStatus; /* */
int m_iRecvLen; /* */
int m_iNeedRevLength; /* */
int iRecvTime; /* */
uint8_t m_au8RecvBuf[RECVDATA_MAXLENTH];/* */
} SJZD_SERIAL_DEF;
int32_t sjzd_serial_init(char *port,int baud,char databit,char parity); int32_t sjzd_serial_init(char *port,int baud,char databit,char parity);
int32_t sjzd_serial_read(uint8_t *pucBuffer,uint16_t usNBytes,uint16_t *usNBytesRead); int32_t sjzd_serial_read(uint8_t *pucBuffer,uint16_t usNBytes,uint16_t *usNBytesRead);
int32_t sjzd_serial_write(uint8_t *pucBuffer,uint16_t usNBytes); int32_t sjzd_serial_write(uint8_t *pucBuffer,uint16_t usNBytes);

Loading…
Cancel
Save