initial commit

This commit is contained in:
chi
2025-01-07 16:07:58 +09:00
commit 9e657e2558
18 changed files with 2723 additions and 0 deletions

136
Arduino_PLC/IO.h Normal file
View 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