3D Software Box

SPA-bus protocol

Introduction

SPA-bus = Strömberg Protection Acquisition bus

SPA-bus is a fieldbus protocol used in substation automation. One master and many slaves. It's ASCII based.

SPA-bus was developed by Strömberg in Finland (now ABB). It's used mostly in ABB protection relays and substation automation products.

Physical layer

Usually a RS232 (V.24) serial connection.

Link layer

Usually:

Master message

Read

Byte posLengthValueDescription
010x3e '>'Start character
11-3Address
..1Message Type
..0-3Channel
..1Data Category
..0-6Data Number
..10x3a ':'Separator
..2Checksum
..10x0d CRStop character

Write

Byte posLengthValueDescription
010x3e '>'Start character
11-3Address
..1Message Type
..0-3Channel
..1Data Category
..0-6Data Number
..10x3a ':'Separator
....New value
..10x3a ':'Separator
..2Checksum
..10x0d CRStop character

Slave message

Data

Byte posLengthValueDescription
010x0a LFStart character
110x3c '<'Start character
21-3Address
..10x44 'D'Message Type
..Value
..10x3a ':'Separator
..2Checksum
..10x0d CRStop character
..10x0a LFStop character

Acknowledge

Byte posLengthValueDescription
010x0a LFStart character
110x3c '<'Start character
21-3Address
..10x41 'A'Message Type
..10x3a ':'Separator
..2Checksum
..10x0d CRStop character
..10x0a LFStop character

Negative acknowledge

Byte posLengthValueDescription
010x0a LFStart character
110x3c '<'Start character
21-3Address
..10x4e 'N'Message Type
..10x3a ':'Separator
..1Negative acknowledgement code
..10x3a ':'Separator
..2Checksum
..10x0d CRStop character
..10x0a LFStop character

Description

Address

1-999
0 is unavailble and 900 is broadcast (for time synchronization).

Message Type

CharacterDescription
RRead
WWrite
DData
AAcknowledge
NNegative acknowledge

Channel

0-999, default is 0 if omitted

Data Category

CharacterTypeNotes
IInput data
OOutput data
SSetting values
VVariables (internal)
MMemory data
CSlave status (condition)(Channel 0 only)
FSlave identification(Channel 0 only)
TTime(Channel 0 only)
DDate and time(Channel 0 only)
LLast events(Channel 0 only)
BLast events from backup buffer(Channel 0 only)
AAlarms valid(Channel 0 only)

Data Number

1-999999

Negative acknowledgement code

CharacterDescription
1Slave is busy
2Overflow
3Message to complicated
4reserved
5Syntax error
6Slave does not contain all data requested in the message
7Addressed data is impossible to write or read
8Data in write message not validated
9Undefined negative acknowledgment

Checksum

Hexadecimal digits of data Xor:ed. Or 'XX' if unused.

SerialMon support