#ifndef _VAR_H_ #define _VAR_H_ #define DEBUG #define sprint(...) Serial1.print(__VA_ARGS__) #define sprintln(...) Serial1.println(__VA_ARGS__) #ifdef DEBUG #define dprint(...) Serial1.print(__VA_ARGS__) #define dprintln(...) Serial1.println(__VA_ARGS__) #else #define dprint(...) #define dprint(...) #endif #include "arduino.h" #include #include "UtilClass.h" //모든 사용가능한 커맨드를 넣는다(이 파일은 서브PLC파일) enum eCommand { LOAD = 0, //EEPROM 불러오기 SAVE, //EEPROM 저장 RESET, //초기화 PINGCHK, SET_PINMODE, //PINMODE 설정 SET_DOUTPUT, //디지털출력설정(포트번호,값[1,0]) SET_AOUTPUT, //아날로그출력설정(포트GET_SETTING = 50, //셋팅값 요청 SET_FLAG, SET_EEPROM, SET_MANUALSPEED, GET_SETTING = 50, GUIDE_MOT= 90, //가이드커버(양쪽) 0=멈춤,1=UP,2=DN 아스키코드표 90=Z SET_EEP_DIREV, }; //asci 0=48,1=49,2=50 enum eEEPAddress { EEP_IOINTERVAL = 0, EEP_RESETCOUNT, EEP_DIREVH, EEP_DIREVL, EEP_OPTION, EEP_UPTIME, }; //플래그 총 32개 모두 다씀 enum eFlag { FLAG_STOPZ= 0, FLAG_SETUP, FLAG_WAIT, FLAG_AUTORUN, FLAG_MANUALRUN, FLAG_LIMITHIGHL, FLAG_LIMITHIGHR, FLAG_LIMITLOWL, FLAG_LIMITLOWR, FLAG_POWERLOSS, FLAG_DIR, FLAG_LEFT_RUN, FLAG_RIGHT_RUN, FLAG_RUN_CMD, FLAG_GO_CHAGER = 26, FLAG_ENABLE_AD4INVERT=27, FLAG_ENABLE_LOG_SPEED = 28, }; class VarClass { public: unsigned long serialprinttime = 0; uint16_t runtime = 0; long pingtime = 0; //SUB uint32_t IOData = 0; //IO데이터가 있으며 DI : Low 16bit, DO : High 16bit uint8_t ANData[4]; //A0 ~ A3 uint8_t AOData[4]; //A4 ~ A6 void Setup(); void Update(); void runCommand(eCommand cmd, uint8_t p1, uint8_t p2); uint8_t _eep_resetcount = 0; //장치초기화 횟수 uint8_t _eep_iosendinterval = 0; uint8_t _eep_option = 0; //옵션값(이 값은 FLAG와 연결됨) uint8_t _eep_pindir_iH = 0; //Input High uint8_t _eep_pindir_iL = 0; //Input Low uint8_t manual_speed = 0; //속도고정값 void eeprom_save(); //EEPROM 쓰기 void eeprom_load(); //EEPROM 읽기 void eeprom_incResetCount(); //초기화횟수증가 및 저장 void setFlag(uint8_t pos, bool value, String Readson); //플래그쓰기 bool getFlag(uint8_t pos); //플래그읽기 uint32_t getFlagValue(); //플래그값확인 bool runReset = false; //이값을 설정하면 Project.Ino 에서 초기화를 수행함 private: uint32_t flag = 0; //시스템플래그 uint32_t flag_ = 0; //void FlagValueChanged(uint8_t index, bool newValue); }; extern VarClass var; #endif