Files
ENIG/Arduino_PLC/IO.h
2025-01-07 16:07:58 +09:00

137 lines
3.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#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