initial commit
This commit is contained in:
136
Arduino_PLC/IO.h
Normal file
136
Arduino_PLC/IO.h
Normal file
@@ -0,0 +1,136 @@
|
||||
#ifndef _IO_H_
|
||||
#define _IO_H_
|
||||
#include "Arduino.h"
|
||||
|
||||
class IoClass
|
||||
{
|
||||
public:
|
||||
|
||||
//input pin
|
||||
#define PINI_EMG 30
|
||||
#define PINI_BTN_1 31
|
||||
#define PINI_BTN_2 32
|
||||
#define PINI_BTN_3 33
|
||||
#define PINI_BTN_4 34
|
||||
|
||||
#define PINI_OVERLOADL1 35
|
||||
#define PINI_OVERLOADL2 36
|
||||
|
||||
#define PINI_OVERLOADR1 37
|
||||
#define PINI_OVERLOADR2 38
|
||||
|
||||
#define PINI_EMPTY_38 39
|
||||
|
||||
#define PINI_BTN_ZUP 40
|
||||
#define PINI_BTN_ZDN 41
|
||||
#define PINI_LIMIT_LU 42
|
||||
#define PINI_LIMIT_LD 43
|
||||
#define PINI_LIMIT_RU 44
|
||||
#define PINI_LIMIT_RD 45
|
||||
#define PINI_STOP 46
|
||||
|
||||
//send data index
|
||||
#define IDXI_EMG 0
|
||||
#define IDXI_BTN_1 1
|
||||
#define IDXI_BTN_2 2
|
||||
#define IDXI_BTN_3 3
|
||||
#define IDXI_BTN_4 4
|
||||
#define IDXI_OVERLOADL 5
|
||||
#define IDXI_OVERLOADR 6
|
||||
#define IDXI_EMPTY7 7
|
||||
#define IDXI_EMPTY8 8
|
||||
#define IDXI_BTN_ZUP 9
|
||||
#define IDXI_BTN_ZDN 10
|
||||
#define IDXI_LIMIT_LU 11
|
||||
#define IDXI_LIMIT_LD 12
|
||||
#define IDXI_LIMIT_RU 13
|
||||
#define IDXI_LIMIT_RD 14
|
||||
#define IDXI_STOP 15
|
||||
|
||||
//output
|
||||
#define PINO_GUIDEMOTOR_LDIR 22 //Guide Motor Direction
|
||||
#define PINO_GUIDEMOTOR_LRUN 23 //Guide Motor Start
|
||||
#define PINO_GUIDEMOTOR_RDIR 24 //
|
||||
#define PINO_GUIDEMOTOR_RRUN 25 //Guide Motor Run(STA<54><41> <20><><EFBFBD><EFBFBD>ȭ<EFBFBD><C8AD> [IO.cpp:Update()] )
|
||||
#define PINO_EMPTY_26 26
|
||||
#define PINO_EMPTY_27 27
|
||||
#define PINO_EMPTY_28 28
|
||||
#define PINO_EMPTY_29 29
|
||||
|
||||
|
||||
#define IDXO_GUIDEMOTOR_LDIR 0 //Guide Motor Direction
|
||||
#define IDXO_GUIDEMOTOR_LRUN 1 //Guide Motor Start
|
||||
#define IDXO_GUIDEMOTOR_RDIR 2 //
|
||||
#define IDXO_GUIDEMOTOR_RRUN 3 //Guide Motor Run(STA<54><41> <20><><EFBFBD><EFBFBD>ȭ<EFBFBD><C8AD> [IO.cpp:Update()] )
|
||||
#define IDXO_EMPTY_04 4
|
||||
#define IDXO_EMPTY_05 5
|
||||
#define IDXO_EMPTY_06 6
|
||||
#define IDXO_EMPTY_07 7
|
||||
#define IDXO_EMPTY_08 8
|
||||
#define IDXO_CHARGE_ON 9
|
||||
#define IDXO_MOT_POWER_L 10
|
||||
#define IDXO_MOT_POWER_R 11
|
||||
#define IDXO_EMPTY_42 12
|
||||
#define IDXO_EMPTY_43 13
|
||||
#define IDXO_EMPTY_44 14
|
||||
#define IDXO_EMPTY_45 15
|
||||
|
||||
//<2F>Ƴ<EFBFBD><C6B3>α<EFBFBD><CEB1>Է<EFBFBD>(<28>ɹ<EFBFBD>ȣ)
|
||||
#define PINAI_0 A0 //<2F><><EFBFBD>׳ݼ<D7B3><DDBC><EFBFBD>(FRONT) <20><>ġ <20><>
|
||||
#define PINAI_1 A1 //<2F><><EFBFBD>׳ݼ<D7B3><DDBC><EFBFBD>(REAR) <20><>ġ <20><>
|
||||
#define PINAI_2 A2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define PINAI_3 A3 //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD>
|
||||
|
||||
//<2F>Ƴ<EFBFBD><C6B3>α<EFBFBD> <20>Է<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD>)
|
||||
#define IDXAI_0 0
|
||||
#define IDXAI_1 1
|
||||
#define IDXAI_2 2
|
||||
#define IDXAI_3 3
|
||||
|
||||
//<2F>Ƴ<EFBFBD><C6B3>α<EFBFBD><CEB1><EFBFBD><EFBFBD>(PWM)
|
||||
#define PINAO_4 A4 //Z<><5A> <20><><EFBFBD><EFBFBD> <20>ӵ<EFBFBD>
|
||||
#define PINAO_5 A5 //<2F><><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD> <20>ӵ<EFBFBD>
|
||||
#define PINAO_6 A6 //<2F><><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD> <20>ӵ<EFBFBD>
|
||||
#define PINAO_7 A7 //<2F><><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD> <20>ӵ<EFBFBD>
|
||||
|
||||
//<2F>Ƴ<EFBFBD><C6B3>α<EFBFBD><CEB1><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD>)
|
||||
#define IDXAO_0 0 //Z<><5A> <20><><EFBFBD><EFBFBD> <20>ӵ<EFBFBD>
|
||||
#define IDXAO_1 1 //(<28><>+<2B><>) <20><><EFBFBD><EFBFBD>
|
||||
#define IDXAO_2 2 //<2F><><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD> <20>ӵ<EFBFBD>
|
||||
#define IDXAO_3 3 //<2F><><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD> <20>ӵ<EFBFBD>
|
||||
|
||||
#define MAF_SIZE 30
|
||||
|
||||
void Setup();
|
||||
void Update();
|
||||
bool IsPowerLoss();
|
||||
private:
|
||||
|
||||
int bufferF[MAF_SIZE];
|
||||
int indexF = 0;
|
||||
int countF = 0;
|
||||
int iF;
|
||||
int sumF = 0;
|
||||
int tempF;
|
||||
float avgF;
|
||||
|
||||
int bufferB[MAF_SIZE];
|
||||
int indexB = 0;
|
||||
int countB = 0;
|
||||
int iB;
|
||||
int sumB = 0;
|
||||
int tempB;
|
||||
float avgB;
|
||||
|
||||
long tm_gateoutOn = 0;
|
||||
long tm_gateoutOf = 0;
|
||||
long tm_markOn = 0;
|
||||
long tm_markOff = 0;
|
||||
|
||||
unsigned long runtime = 0;
|
||||
void IOValueChanged(bool isout, uint8_t index, bool newValue);
|
||||
|
||||
};
|
||||
|
||||
extern IoClass io;
|
||||
#endif
|
||||
Reference in New Issue
Block a user