What is SILECS?
Programmable Logic Controllers (PLCs) and other micro-controller families are essential components of the CERN control system. Both have their weaknesses and their strengths and as they typically present custom communication protocols, it is difficult to federate them into the control system using a single communication strategy.
The purpose of SILECS is to mitigate the communication issues by providing communication interfaces in a hardware-independent manner. In addition, it automatically generates all the resources needed on client (FEC) and controller side to implement a common and generic Ethernet communication.
A set of rules and concepts has been defined to delimit the scope of the SILECS product. The framework has to:
- normalize the controllers connection based on Ethernet medium
- saves experts from implementing communication software, on both side: client and controller
- offer a suitable interface for the accelerator Device/Property model
- propose a non-intrusive solution for the controller software by limiting the use of hardware resources (relies on internal PLC features)
- define high-level services and API for the client side (Front-End software)
The table below lists the principal components used at CERN and supported by SILECS in the accelerator controls infrastructure.
Brand name |
Product |
Model |
Environment |
Protocol |
---|---|---|---|---|
SIEMENS |
SIMATIC S7 |
S7-3xx, |
STEP-7 |
S7 (Get/Set) |
SIEMENS |
SIMATIC S7 |
S7-12xx, |
TIA-PORTAL |
S7 (Get/Set) |
SCHNEIDER |
MODICON |
Premium, |
Unity Pro |
ModBUS-TCP |
SCHNEIDER |
MODICON |
M340, M580 |
Unity Pro |
ModBUS-TCP |
DIGI |
Rabbit MiniCore |
RCM module |
C/C++ platform |
ModBUS-TCP |
National Instrument |
PXI platform |
Compact-RIO, |
LabView |
NI CNV |
BECKHOFF |
Bus controller |
BC9xxxx, |
TwinCAT-2 |
ModBUS-TCP |
BECKHOFF |
Eth. Bus coupler |
BK9xxxx |
KS2000 |
ModBUS-TCP |
ICPCON |
Eth. Bus coupler |
ET7x00 |
|
ModBUS-TCP |
CERN CUSTOM |
Embedded Linux systems |
FPGA, Arms, … |
STEP-7 |
S7 (Get/Set) |
How is SILECS made?
The SILECS framework is composed of a set of tools, scripts and a C++ library. The configuration tool allows the definition of the data to be exchanged and their instantiation on different controllers within the control system. The scripts generate the resources necessary for the final communication while the library eventually allows the application on the client side to send and receive data to/from the different controllers. Finally, a diagnostic tool is proposed to validate the whole configuration without implementing a single line of code.