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:
Thu Sep 26 18:40:53 2019 +0000
Revision:
8:fa2a2c3a16ce
Child:
9:d6e7981dfc89
Command Response and Data Storage;

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 8:fa2a2c3a16ce 10 const char vRegDevCfg[23] = {
masterkookus 8:fa2a2c3a16ce 11 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 12 };
masterkookus 8:fa2a2c3a16ce 13
masterkookus 8:fa2a2c3a16ce 14 /*const char vRegMsgCfg204] = {
masterkookus 8:fa2a2c3a16ce 15 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 16 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 17 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 18 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 19 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 20 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 21 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 22 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 23 0x46,0x52,0x45,0x51,0x00,0x00,0x01,0xFF,0xFF,0x00,0x00,0x23
masterkookus 8:fa2a2c3a16ce 24 };*/
masterkookus 8:fa2a2c3a16ce 25
masterkookus 8:fa2a2c3a16ce 26 //short2byte analogScaleOffset;
masterkookus 8:fa2a2c3a16ce 27
masterkookus 8:fa2a2c3a16ce 28 struct analog1Sample {
masterkookus 8:fa2a2c3a16ce 29 char analogName[6];
masterkookus 8:fa2a2c3a16ce 30 float analog1Value;
masterkookus 8:fa2a2c3a16ce 31 };
masterkookus 8:fa2a2c3a16ce 32 struct analog2Sample {
masterkookus 8:fa2a2c3a16ce 33 char analogName[6];
masterkookus 8:fa2a2c3a16ce 34 float analog1Value;
masterkookus 8:fa2a2c3a16ce 35 float analog2Value;
masterkookus 8:fa2a2c3a16ce 36 };
masterkookus 8:fa2a2c3a16ce 37 struct analog3Sample {
masterkookus 8:fa2a2c3a16ce 38 char analogName[6];
masterkookus 8:fa2a2c3a16ce 39 float analog1Value;
masterkookus 8:fa2a2c3a16ce 40 float analog2Value;
masterkookus 8:fa2a2c3a16ce 41 float analog3Value;
masterkookus 8:fa2a2c3a16ce 42 };
masterkookus 8:fa2a2c3a16ce 43 struct analog4Sample {
masterkookus 8:fa2a2c3a16ce 44 char analogName[6];
masterkookus 8:fa2a2c3a16ce 45 float analog1Value;
masterkookus 8:fa2a2c3a16ce 46 float analog2Value;
masterkookus 8:fa2a2c3a16ce 47 float analog3Value;
masterkookus 8:fa2a2c3a16ce 48 float analog4Value;
masterkookus 8:fa2a2c3a16ce 49 };
masterkookus 8:fa2a2c3a16ce 50
masterkookus 8:fa2a2c3a16ce 51 struct fmTimeStamp {
masterkookus 8:fa2a2c3a16ce 52 char month;
masterkookus 8:fa2a2c3a16ce 53 char day;
masterkookus 8:fa2a2c3a16ce 54 char year;
masterkookus 8:fa2a2c3a16ce 55 char hour;
masterkookus 8:fa2a2c3a16ce 56 char min;
masterkookus 8:fa2a2c3a16ce 57 char sec;
masterkookus 8:fa2a2c3a16ce 58 short msec;
masterkookus 8:fa2a2c3a16ce 59 };
masterkookus 8:fa2a2c3a16ce 60
masterkookus 8:fa2a2c3a16ce 61 struct vRegData {
masterkookus 8:fa2a2c3a16ce 62 char numAnalog;
masterkookus 8:fa2a2c3a16ce 63 char numDigital;
masterkookus 8:fa2a2c3a16ce 64 struct analog1Sample analogs[17];
masterkookus 8:fa2a2c3a16ce 65 struct fmTimeStamp timeStamp;
masterkookus 8:fa2a2c3a16ce 66 char digitalTargets[52];
masterkookus 8:fa2a2c3a16ce 67 };
masterkookus 8:fa2a2c3a16ce 68
masterkookus 8:fa2a2c3a16ce 69 void initVoltageRegulator(vRegData *vReg);
masterkookus 8:fa2a2c3a16ce 70
masterkookus 8:fa2a2c3a16ce 71 #endif