lib60870.NET
2.2.0
IEC 60870-5-101/104 Protocol Source Code Library for C#/.NET
|
Public Member Functions | |
void | Run () |
Run the protocol state machines a single time. Alternative to Start/Stop when no background thread should be used Has to be called frequently More... | |
void | Start () |
Start a background thread running the master More... | |
void | Stop () |
Stop the background thread More... | |
LinkLayerState | GetLinkLayerState () |
override void | SetReceivedRawMessageHandler (RawMessageHandler handler, object parameter) |
Sets the raw message handler for receoved messages More... | |
override void | SetSentRawMessageHandler (RawMessageHandler handler, object parameter) |
Sets the sent message handler for sent messages. More... | |
CS101Master (SerialPort port, LinkLayerMode mode, LinkLayerParameters llParams=null, ApplicationLayerParameters alParams=null) | |
CS101Master (Stream serialStream, LinkLayerMode mode, LinkLayerParameters llParams=null, ApplicationLayerParameters alParams=null) | |
void | SetTimeouts (int messageTimeout, int characterTimeout) |
Sets the timeouts for receiving messages (in milliseconds) More... | |
void | SetASDUReceivedHandler (ASDUReceivedHandler handler, object parameter) |
void | AddSlave (int slaveAddress) |
LinkLayerState | GetLinkLayerState (int slaveAddress) |
void | SetLinkLayerStateChangedHandler (LinkLayerStateChanged handler, object parameter) |
void | UseSlaveAddress (int slaveAddress) |
Sets the slave link layer address to be used More... | |
void | PollSingleSlave (int address) |
void | SendLinkLayerTestFunction () |
override void | SendInterrogationCommand (CauseOfTransmission cot, int ca, byte qoi) |
Sends the interrogation command. More... | |
override void | SendCounterInterrogationCommand (CauseOfTransmission cot, int ca, byte qcc) |
Sends the counter interrogation command (C_CI_NA_1 typeID: 101) More... | |
override void | SendReadCommand (int ca, int ioa) |
Sends a read command (C_RD_NA_1 typeID: 102). More... | |
override void | SendClockSyncCommand (int ca, CP56Time2a time) |
Sends a clock synchronization command (C_CS_NA_1 typeID: 103). More... | |
override void | SendTestCommand (int ca) |
Sends a test command (C_TS_NA_1 typeID: 104). More... | |
override void | SendTestCommandWithCP56Time2a (int ca, ushort tsc, CP56Time2a time) |
Sends a test command with CP56Time2a time (C_TS_TA_1 typeID: 107). More... | |
override void | SendResetProcessCommand (CauseOfTransmission cot, int ca, byte qrp) |
Sends a reset process command (C_RP_NA_1 typeID: 105). More... | |
override void | SendDelayAcquisitionCommand (CauseOfTransmission cot, int ca, CP16Time2a delay) |
Sends a delay acquisition command (C_CD_NA_1 typeID: 106). More... | |
override void | SendControlCommand (CauseOfTransmission cot, int ca, InformationObject sc) |
Sends the control command. More... | |
override void | SendASDU (ASDU asdu) |
Sends an arbitrary ASDU to the connected slave More... | |
override ApplicationLayerParameters | GetApplicationLayerParameters () |
Get the application layer parameters used by this master instance More... | |
override void | GetFile (int ca, int ioa, NameOfFile nof, IFileReceiver receiver) |
Gets the file. More... | |
Protected Attributes | |
Thread | workerThread = null |
SerialPort | port = null |
bool | running = false |
Protected Attributes inherited from lib60870.CS101.Master | |
bool | debugOutput |
Properties | |
bool | DIR [get, set] |
Value of DIR bit when sending messages. More... | |
int | OwnAddress [get, set] |
int | SlaveAddress [get, set] |
Gets or sets the link layer slave address More... | |
Properties inherited from lib60870.CS101.Master | |
bool | DebugOutput [get, set] |
|
virtual |
Get the application layer parameters used by this master instance
Implements lib60870.CS101.Master.
|
virtual |
void lib60870.CS101.CS101Master.Run | ( | ) |
Run the protocol state machines a single time. Alternative to Start/Stop when no background thread should be used Has to be called frequently
|
virtual |
Sends an arbitrary ASDU to the connected slave
asdu | The ASDU to send |
Implements lib60870.CS101.Master.
|
virtual |
Sends a clock synchronization command (C_CS_NA_1 typeID: 103).
ca | Common address |
time | the new time to set |
ConnectionException | description |
Implements lib60870.CS101.Master.
|
virtual |
Sends the control command.
The type ID has to match the type of the InformationObject!
C_SC_NA_1 -> SingleCommand C_DC_NA_1 -> DoubleCommand C_RC_NA_1 -> StepCommand C_SC_TA_1 -> SingleCommandWithCP56Time2a C_SE_NA_1 -> SetpointCommandNormalized C_SE_NB_1 -> SetpointCommandScaled C_SE_NC_1 -> SetpointCommandShort C_BO_NA_1 -> Bitstring32Command
cot | Cause of transmission (use ACTIVATION to start a control sequence) |
ca | Common address |
sc | Information object of the command |
ConnectionException | description |
Implements lib60870.CS101.Master.
|
virtual |
Sends the counter interrogation command (C_CI_NA_1 typeID: 101)
cot | Cause of transmission |
ca | Common address |
qcc | Qualifier of counter interrogation command |
ConnectionException | description |
Implements lib60870.CS101.Master.
|
virtual |
Sends a delay acquisition command (C_CD_NA_1 typeID: 106).
cot | Cause of transmission |
ca | Common address |
delay | delay for acquisition |
ConnectionException | description |
Implements lib60870.CS101.Master.
|
virtual |
Sends the interrogation command.
cot | Cause of transmission |
ca | Common address |
qoi | Qualifier of interrogation (20 = station interrogation) |
ConnectionException | description |
Implements lib60870.CS101.Master.
|
virtual |
Sends a read command (C_RD_NA_1 typeID: 102).
This will send a read command C_RC_NA_1 (102) to the slave/outstation. The COT is always REQUEST (5). It is used to implement the cyclical polling of data application function.
ca | Common address |
ioa | Information object address |
ConnectionException | description |
Implements lib60870.CS101.Master.
|
virtual |
Sends a reset process command (C_RP_NA_1 typeID: 105).
cot | Cause of transmission |
ca | Common address |
qrp | Qualifier of reset process command |
ConnectionException | description |
Implements lib60870.CS101.Master.
|
virtual |
Sends a test command (C_TS_NA_1 typeID: 104).
Not required and supported by IEC 60870-5-104.
ca | Common address |
ConnectionException | description |
Implements lib60870.CS101.Master.
|
virtual |
Sends a test command with CP56Time2a time (C_TS_TA_1 typeID: 107).
ca | Common address |
tsc | test sequence number |
time | test timestamp |
ConnectionException | description |
Implements lib60870.CS101.Master.
|
virtual |
Sets the raw message handler for receoved messages
handler | Handler/delegate that will be invoked when a message is received |
parameter | will be passed to the delegate |
Implements lib60870.CS101.Master.
|
virtual |
Sets the sent message handler for sent messages.
handler | Handler/delegate that will be invoked when a message is sent< |
parameter | will be passed to the delegate |
Implements lib60870.CS101.Master.
void lib60870.CS101.CS101Master.SetTimeouts | ( | int | messageTimeout, |
int | characterTimeout | ||
) |
Sets the timeouts for receiving messages (in milliseconds)
messageTimeout | Timeout to wait for the first character of a message |
characterTimeout | Timeout to wait for next characters in a message |
void lib60870.CS101.CS101Master.Start | ( | ) |
Start a background thread running the master
void lib60870.CS101.CS101Master.Stop | ( | ) |
Stop the background thread
void lib60870.CS101.CS101Master.UseSlaveAddress | ( | int | slaveAddress | ) |
Sets the slave link layer address to be used
slaveAddress | Slave link layer address. |
|
getset |
Value of DIR bit when sending messages.
|
getset |
Gets or sets the link layer slave address
Slave link layer address.