Files
newspark110/device/SerialPort/modbustcp.h
Chenwenxuan edac2715f0 init
2024-03-06 14:54:30 +08:00

112 lines
2.9 KiB
C++

#ifndef MODBUSTCP_H
#define MODBUSTCP_H
#include <tchar.h>
#include <math.h>
#include <iostream>
#include <process.h>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#include <QSettings>
#include <QString>
#include<QObject>
#include"base.h"
struct PLC_COMMAND{
unsigned short cmdAddr;
bool cmdWriteFlag;
int cmdDelay;
};
#define MODBUSTCP ModbusTCP::instance()
class ModbusTCP
{
static ModbusTCP* uniqueInstance;
public:
static ModbusTCP* instance();
QString ipAddr_electric_resistance;
unsigned int sockfd;
unsigned int sockfd_fl;
unsigned int sockfd_record;
unsigned int sockfd_electric_resistance;
char RFID[50];
unsigned short height;
unsigned short shangReadAddr;
unsigned short shangWriteAddr;
unsigned short shangReadRFIDAddr;
unsigned short xiaWriteHeightAddr;
unsigned short shangWriteHeartbeatAddr;
unsigned short xiaReadAddr;
unsigned short xiaWriteAddr;
unsigned short xiaReadStsAddr;
unsigned short ReadTransferPLCStsAddr;
unsigned short InitAddr;
unsigned short RunAddr;
unsigned short StopAddr;
unsigned short ClearAlarmAddr;
bool connFlag{true};
int PLCSts[2];
int TransferPLCSts;
PLC_COMMAND TransferPLCCmd;
PLC_COMMAND SeparatePLCCmd;
CRITICAL_SECTION mCsRead;
CRITICAL_SECTION mCsRead_fl;
float array_pos[1000][2];
private:
QString ipAddr;
QString ipAddr_fl;
QString ipAddr_record;
unsigned short port;
unsigned short shangReadVacuumAddr;
unsigned short shangWriteVacuumAddr;
unsigned short xiaWriteVacuumAddr;
unsigned short _seq_modbus;
unsigned short _seq_modbus_fl;
public:
ModbusTCP();
~ModbusTCP(void);
public:
bool ConnPLC();
bool ConnPLC_fl();
bool ConnPLC_force();
bool ConnPLC_electric_resistance();
bool CloseConn();
bool CloseConn_fl();
bool CloseConn_record();
bool CloseConn_electric_resistance();
int SendCmdRead(unsigned int sockfd,char *data, unsigned short data_len);
int SendCmdWrite(unsigned int sockfd,char *data, unsigned short data_len);
int SendCmdRead_fl(unsigned int sockfd,char *data, unsigned short data_len);
int SendCmdWrite_fl(unsigned int sockfd,char *data, unsigned short data_len);
int DataDecode(char *data, int len);
int ModbusWrite(unsigned char cmd,unsigned short addr, unsigned short data);
int ModbusWrite_fl(unsigned char cmd,unsigned short addr, unsigned short data);
int ModbusWrite_force(char * data, int len);
int ModbusWrite_electric_resistance(char * data, int len, char * rev_buf);
int ModbusRead(unsigned short addr,int dataLen);
int ModbusRead_fl(unsigned short addr,int dataLen);
int getModbusPara(QString DevName);
int Heartbeat(void);
int Heartbeat_fl(void);
int TransferPLCRun(unsigned short addr,int delay);
int SeparatePLCRun(unsigned short addr,int delay);
bool stopFlag;
};
#endif // MODBUSTCP_H