This demonstrates the process of communicating through ethernet to a SEL-2431 Voltage Regulator Control Panel using SEL Fast Message. Basic device commands and data cna be requested and displayed over a connected serial port. This is a basic version and full testing and documentation has yet to be completed.

Dependencies:   BufferedSerial analogAverager voltageRegulator netStatReg analogMinMax CounterMinMax

Committer:
masterkookus
Date:
Tue Oct 01 15:51:59 2019 +0000
Revision:
9:d6e7981dfc89
Parent:
8:fa2a2c3a16ce
Child:
10:9da863a6da3e
Polling+Tap Command and Metering Command

Who changed what in which revision?

UserRevisionLine numberNew contents of line
masterkookus 8:fa2a2c3a16ce 1 #ifndef SELMSG_H
masterkookus 8:fa2a2c3a16ce 2 #define SELMSG_H
masterkookus 8:fa2a2c3a16ce 3
masterkookus 8:fa2a2c3a16ce 4 const char fmCmd[3][2] = {
masterkookus 8:fa2a2c3a16ce 5 {0xA5,0xC0},
masterkookus 8:fa2a2c3a16ce 6 {0xA5,0xC1},
masterkookus 8:fa2a2c3a16ce 7 {0xA5,0xD1}
masterkookus 8:fa2a2c3a16ce 8 };
masterkookus 8:fa2a2c3a16ce 9
masterkookus 9:d6e7981dfc89 10 const char serCmd[5][7] = {
masterkookus 9:d6e7981dfc89 11 {'M','E','T',' ','M','\r','\n'},
masterkookus 9:d6e7981dfc89 12 {'T','A','P','\r','\n',' ',' '},
masterkookus 9:d6e7981dfc89 13 {'A','C','C','\r','\n',' ',' '},
masterkookus 9:d6e7981dfc89 14 {'O','T','T','E','R','\r','\n'},
masterkookus 9:d6e7981dfc89 15 {'\r','\n',' ',' ',' ',' ',' '}
masterkookus 9:d6e7981dfc89 16 };
masterkookus 9:d6e7981dfc89 17
masterkookus 9:d6e7981dfc89 18 const char serCmdSeq[3][5] = {
masterkookus 9:d6e7981dfc89 19 {0x02,0x03,0x04,0x04,0x00},
masterkookus 9:d6e7981dfc89 20 {0x02,0x03,0x04,0x04,0x01},
masterkookus 9:d6e7981dfc89 21 {0x05,0x07,0x04,0x04,0x07}
masterkookus 9:d6e7981dfc89 22 };
masterkookus 9:d6e7981dfc89 23
masterkookus 8:fa2a2c3a16ce 24 const char vRegDevCfg[23] = {
masterkookus 8:fa2a2c3a16ce 25 0xA5,0xC0,0x17,0x02,0x03,0x00,0xA5,0xC1,0xA5,0xD1,0xA5,0xC2,0xA5,0xD2,0xA5,0xC3,0xA5,0xD3,0x01,0x00,0x00,0x05,0x21
masterkookus 8:fa2a2c3a16ce 26 };
masterkookus 8:fa2a2c3a16ce 27
masterkookus 8:fa2a2c3a16ce 28 /*const char vRegMsgCfg204] = {
masterkookus 8:fa2a2c3a16ce 29 0xA5,0xC1,0xBB,0x01,0x00,0x00,0x11,0x01,0x34,0x00,0x00,0x04,0x00,0x48,0x00,0x50,0x49,0x4C,0x00,0x00,0x00,0x00,0x01,0xFF,
masterkookus 8:fa2a2c3a16ce 30 0xFF,0x00,0x00,0x49,0x4C,0x41,0x00,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x56,0x53,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x00,
masterkookus 8:fa2a2c3a16ce 31 0x00,0x56,0x53,0x41,0x00,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x56,0x4C,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x56,
masterkookus 8:fa2a2c3a16ce 32 0x4C,0x41,0x00,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x56,0x43,0x4D,0x50,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x54,0x41,0x50,
masterkookus 8:fa2a2c3a16ce 33 0x50,0x4F,0x53,0x01,0xFF,0xFF,0x00,0x00,0x56,0x53,0x53,0x45,0x43,0x00,0x01,0xFF,0xFF,0x00,0x00,0x56,0x4C,0x53,0x45,0x43,
masterkookus 8:fa2a2c3a16ce 34 0x00,0x01,0xFF,0xFF,0x00,0x00,0x56,0x43,0x4D,0x50,0x53,0x43,0x01,0xFF,0xFF,0x00,0x00,0x50,0x4C,0x00,0x00,0x00,0x00,0x01,
masterkookus 8:fa2a2c3a16ce 35 0xFF,0xFF,0x00,0x00,0x51,0x4C,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x53,0x4C,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,
masterkookus 8:fa2a2c3a16ce 36 0x00,0x00,0x50,0x46,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x50,0x46,0x4C,0x44,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,
masterkookus 8:fa2a2c3a16ce 37 0x46,0x52,0x45,0x51,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x23
masterkookus 8:fa2a2c3a16ce 38 };*/
masterkookus 8:fa2a2c3a16ce 39
masterkookus 8:fa2a2c3a16ce 40 //short2byte analogScaleOffset;
masterkookus 8:fa2a2c3a16ce 41
masterkookus 8:fa2a2c3a16ce 42 struct analog1Sample {
masterkookus 8:fa2a2c3a16ce 43 char analogName[6];
masterkookus 8:fa2a2c3a16ce 44 float analog1Value;
masterkookus 8:fa2a2c3a16ce 45 };
masterkookus 8:fa2a2c3a16ce 46 struct analog2Sample {
masterkookus 8:fa2a2c3a16ce 47 char analogName[6];
masterkookus 8:fa2a2c3a16ce 48 float analog1Value;
masterkookus 8:fa2a2c3a16ce 49 float analog2Value;
masterkookus 8:fa2a2c3a16ce 50 };
masterkookus 8:fa2a2c3a16ce 51 struct analog3Sample {
masterkookus 8:fa2a2c3a16ce 52 char analogName[6];
masterkookus 8:fa2a2c3a16ce 53 float analog1Value;
masterkookus 8:fa2a2c3a16ce 54 float analog2Value;
masterkookus 8:fa2a2c3a16ce 55 float analog3Value;
masterkookus 8:fa2a2c3a16ce 56 };
masterkookus 8:fa2a2c3a16ce 57 struct analog4Sample {
masterkookus 8:fa2a2c3a16ce 58 char analogName[6];
masterkookus 8:fa2a2c3a16ce 59 float analog1Value;
masterkookus 8:fa2a2c3a16ce 60 float analog2Value;
masterkookus 8:fa2a2c3a16ce 61 float analog3Value;
masterkookus 8:fa2a2c3a16ce 62 float analog4Value;
masterkookus 8:fa2a2c3a16ce 63 };
masterkookus 8:fa2a2c3a16ce 64
masterkookus 8:fa2a2c3a16ce 65 struct fmTimeStamp {
masterkookus 8:fa2a2c3a16ce 66 char month;
masterkookus 8:fa2a2c3a16ce 67 char day;
masterkookus 8:fa2a2c3a16ce 68 char year;
masterkookus 8:fa2a2c3a16ce 69 char hour;
masterkookus 8:fa2a2c3a16ce 70 char min;
masterkookus 8:fa2a2c3a16ce 71 char sec;
masterkookus 8:fa2a2c3a16ce 72 short msec;
masterkookus 8:fa2a2c3a16ce 73 };
masterkookus 8:fa2a2c3a16ce 74
masterkookus 8:fa2a2c3a16ce 75 struct vRegData {
masterkookus 8:fa2a2c3a16ce 76 char numAnalog;
masterkookus 8:fa2a2c3a16ce 77 char numDigital;
masterkookus 8:fa2a2c3a16ce 78 struct analog1Sample analogs[17];
masterkookus 8:fa2a2c3a16ce 79 struct fmTimeStamp timeStamp;
masterkookus 8:fa2a2c3a16ce 80 char digitalTargets[52];
masterkookus 8:fa2a2c3a16ce 81 };
masterkookus 8:fa2a2c3a16ce 82
masterkookus 8:fa2a2c3a16ce 83 void initVoltageRegulator(vRegData *vReg);
masterkookus 8:fa2a2c3a16ce 84
masterkookus 8:fa2a2c3a16ce 85 #endif