
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
selMsg.h@9:d6e7981dfc89, 2019-10-01 (annotated)
- 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?
User | Revision | Line number | New 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 |