Glossary

  • petal: structure of TEC
  • string: structure of TIB(D)
  • rod: structure of TOB
  • PSU: Power Supply Unit
  • PSC: Power Supply Crate (contains PSU)

PLC Java API

This API will be use to create 3 GUI: Using this API to access PLC requires a previous configuration of PLC. Indeed, nothing can be done if data blocks haven't been created especially for Java access. If you haven't a login name and a password, you can't access PLC with this API. To use these different interface, all you need is Java installed on your computer.

Interface for expert

This interface is used to inform the database about :

  • PLC properties (ip address, port, rack and slot numbers),
  • Variables available on each PLC.

The Java API is not essential to send these information to the database, but it can check if data are correct by creating access to PLC and their variables before submitting the values to the database. So, if the access is succesfully created, data can be sent.

PLC Properties:

These information are useful to create an access to a PLC. The different properties are :
  • MAC address of the PLC
  • IP address of the PLC
  • Port (default 80) to access the PLC via web
  • Rack number where is connected the PLC
  • Slot number where is connected the PLC
  • Timestamp (default 5sec) : frequency for reading values
  • InitialValidity : first day of validity for this configuration
  • FinalValidity : last day of validity for this configuration

PLC Variables

PLC have 4 types of memory blocks but only one can be read/write by Java API (for security reason) : the data blocks.

So to get a value straight from a PLC, data blocks have to be configured by experts to enable access by Java API.

The following description enumerates the parameters of a data block :

  • type : data type of variable to be read
  • repetition factor : number of variable to be read (for contiguous varaible area read)
  • memory area : 0x84 (or 132 in decimal) for DB
  • subarea : subarea coding
  • byte address : specify a byte offset
  • bit address : specify a bit offset

For more information about PLC variables, see the supplement to the documentation of IT-CPs that can be downloaded here

Screenshots of experimental interface available soon

Interface for shift

This interface is used to inform in real time the shift user about the state of power supplies linked to the PLC.

The values are read straight in the PLC and plots describe their evolutions.

To access the PLC, useful information are get from the database :

  • existing PLC and their properties
  • available variables on each PLC

A beta version (As the database part for the PLC is in construction, the beta version of this interface has to be configured manually. Hope first steps for database use will be available soon !) of this interface can be downloaded here. Use it to report bug or make any suggestion to improve it.

Functionalities

Configuration

To allow users to choose the PLC and the variables he wants to monitor, a list of available PLC with its variable is displayed.

Once the selection made, the user has to chosse how many plots he wants on a page. He can also limit the number of pages. Finally, a frame is created with the list of selected variables and the display of plots can start.

Display: Adding a plot to display

Two way exist to display a plot :
  • by double-clicking on the variable name
  • by right-clicking on the variable name to show a popup menu, click on "display plot"

When a plot is displayed, a click on it show a popup window with the following information:

  • Name of the variable the plot is a representation
  • Current value of the variable
  • Average value of the variable
  • Name of the group the plot is part of (if it is part of one)
  • Average value of the group (if it is part of one)

Display: Zoom on a plot:

  • If the plot is displayed, double-clicking on it create a new frame with only this plot (maximum size).
  • If the plot is not displayed, right-click on the name of the plot, and click on "zoom" menu item of the popup menu.

Another way may be implemented to zoom only on a part of the plot : by drawing a rectangle on the plot.

When a plot is zoomed, it is not displayed in the main frame. If the zoom frame is closed, the plot isn't display in the main frame. The user has to choose to do it again.

Display: Creating groups:

Inside the popup menu showed by right-clicking on the list of variables or on a plot, it is possible to create groups of plots.

By clicking on "Create group", a dialog window is created to get the name of the group.

For each existing group, a new frame is created.

As soon as at least one group exist, plots can be added to it as a new menu item is available in the popup menu.

To destroy a group, the frame of the group has to be closed. The plot members are not displayed again in the main frame when the group is closed. The user has to do it by choosing them in the variable list.

Dispaly: Removing a plot from display:

A plot is hidden when a group frame or a zoom frame is closed. But the user can choose to hide one by clicking on "stop displaying plot" in the popup menu (right-click on the variable list or on plots).

Alarm/Warning management

An independant window is in charge of displaying alarm/warning messages.

This window is very important to warn the user if something bad is happening on the tracker.

An acknowledge has to be given by the user for each message, so this window has to be visible as soon as a warning or an alarm is detected.

The plot concerned by this alarm or warning has to be marked to make easier to find it among all plots (red flickering, or anything else flashing).

Interface for common users

This interface is used to inform users about all variables monitored by PLC.

All values are read from the database and plots describe their evolutions.

No access to PLC is required, all information are get from the database:

  • existing PLC and their properties
  • available variables on each PLC

Functionalities of this interface are the same as the ones of the shift interface.

PLC database

The technology that has been used is OJB for Mapping Object Relational.

A Tracker view from PLC

Such a view is useful to have a global idea of data to store in the database for PLC.

The following information has to be received only as an indication.

Inputs for each subdetector :

TOB:

One PLC will be dedicated to monitor sensors for TOB. Number of possible inputs to the interlock system:
  • 1884 for thermistors
  • 100 for humidity sensors

Cooling segments are enviasged, so the number of real inputs to the interlock system will be :

  • 176 for thermistors (4 per cooling loop)
  • 50 for humidity sensors (1 per cooling loop)

In conclusion, 300 inputs are envisaged for the TOB PLC.

TIB/TID:

One PLC will be dedicated to monitor sensors for TIB and TID.

Number of possible inputs to the interlock system :

  • 240 for pt1000s (for temperature)
  • 120 for humidity sensors

Cooling segments for TID and 56 for TIB are envisaged, with 3 or 4 temperature sensors and 1 humidity sensor (and/or 1 radiation sensor) per cooling loop.

So all the sensors will be used for the interlock system.

All in all, 360 inputs are envisaged for the TIB(D) PLC.

TEC:

Two PLC will be used, and one of them could be transform in PLC master if necessary.

Number of possible inputs to the interlock system :

  • 1114 for thermistors
  • 100 for humidity sensors

Cooling segments are envisaged, so the number of real inputs to the interlock system will be :

  • 150 for thermistors (2 per cooling loop)
  • 150 for humidity sensors (2 per cooling loop)

In conclusion, 300 inputs are envisaged for the TEC PLC.

Roughly 1000 analog inputs are envisaged for all PLC.

Outputs for each subdetector:

Assume that a number of 18 PSU will be grouped in one crate.

TOB:

The number of power supply units for TOB is 688.

We end up with roughly 39 PSC, therefore 39 interlock lines are needed for TOB PLC.

TIB/TID:

For TIB, 368 power supply units will be required, and 120 for TID.

Therefore, there will be 28 crates for TIB and TID, in other words there will be 28 interlock lines for TIB(D) PLC.

TEC:

768 power supply units are envisaged for TEC.

So, the number of PSC (i.e. of interlock lines for TEC PLC) needed is 43.

In conclusion, to have a safety margin, roughly 200 digital outputs are envisaged for all PLC.

The disavantage to have an interlock line per PSC, is that shutting down a PSU will mean shutting down the power of modules that belong to more than one cooling segment (i.e modules that have probably no cooling problems). Another way could have been taken : having an interlock line for each cooling segment. But with this choice, 2000 digital outputs are required and this is not conceivable.

Additional information:

Control loop-structure distribution

  • TIB(D) : on layer 1 and 2, there will be 8 to 10 strings (4 to 5 strings per CCU ring) per cooling loop. On layer 3 and 4, there will be 15 strings (15 strings per CCU ring) per cooling loop.
  • TOB : there will be 8 to 20 rods per cooling loop (cf. [1]).
  • TEC : each petal will contain 2 cooling loops.

Control loop-sensor distribution

  • For the TOB, the thermistors will be disposed into a rod like this :
    • 1 on the cooling loop (liquid temperature measurement)
    • another 1 on the backplane of module *1 more in the rod for ambiant temperature measurement
  • For TIB(D), the pt1000s will be placed on the inlet and outled manifolds of cooling loops.
  • For the TEC, the position of the sensors is indicated in [2]

Thermal screen

For the thermal screen, there will be 64 thermistors.

Schema

This Schema represents data needed for PLC: SchemaRelationnelPLC_.png

Tables description

Plc:

Contains all PLC properties.

Fields :

  • plcId : primary key. Unique identifier. Auto Increment
  • macAddress : MAC Address of the PLC.
  • ipAddress : IP address of the PLC
  • port : port available for accessing the PLC
  • rack : rack where is connected the PLC
  • slot : slot where is connected the PLC
  • initialValidity : first day of the validity of this configuration
  • finalValidity : last day of the validity of this configuration

Variable

Short description: Contains the properties of configured data blocks of PLC to get values from them (essential for Java API use).

Fields:

  • varId : primary key. Unique identifier. Auto Increment
  • macAddress : foreign key. Address MAC of the PLC which provide the variable
  • varName : name of the variable
  • type : data type of the variable to be read
  • repetitionFactor : number of value to be read (for contiguous variable area reading)
  • memoryArea : 0x84 (or 132 in decimal) for DB (type of DataBlocks memory area)
  • subArea : subarea coding
  • byteAddress : specify a byte offset
  • bitAddress : specify a bit offset
  • initialValidity : first day of the validity of this configuration
  • finalValidity : last day of the validity of this configuration

Sensor

Short description: Contains all Sensor properties.

Fields:

  • sensorId : primary key. Unique identifier. Auto Increment
  • cableId : identifier of the cable which links to the sensor
  • powerSupplyRack : rack where is connected the power supply of the sensor
  • powerSupplyCrate : crate of the power supply of the sensor
  • powerSupplySlot : slot where is connected the power supply of the sensor
  • powerSupplyChannel : channel of the power supply where is connected the sensor
  • type : type of the sensor
  • channelsToCut : channels to cut in case of alarm
  • calibrationConstants : calibration constants of the sensor
  • InitialValidity : first day of the validity of this configuration
  • finalValidity : last day of the validity of this configuration

Configuration

Short description: Contains information about configuration of a sensor monitored by a PLC.

Fields:

  • configurationId : primary key. Unique identifier. Auto Increment
  • macAddress : foreign key. Address MAC of the PLC which is concerned by this configuration
  • varId : foreign key. Unique identifier of the variable associate to the sensor
  • sensorId : foreign key. Unique identifier of the sensor for which this configuration is done
  • warningThreshold : if the value of the sensor is too close from the interlock value (bigger or equal to this threshold), a warning message is send
  • alarmThreshold : interlock value. If the value of the sensor is bigger or equal to this threshold, interlock of PLC is started
  • flags : flags to know the state of the PLC for the sensor
  • plcChannel : this configuration is valid for this plc channel
  • plcAddress : this configuration is valid for this plc address
  • initialValidity : first day of the validity of this configuration
  • finalValidity : last day of the validity of this configuration

Readout:

Short descritpion: Contains the value read from the PLC.

Fields:

  • readOutId : primary key. Unique identifier. Auto Increment
  • macAddress : foreign key. Address MAC of the PLC which send the readout
  • size : number of value read
  • data : values (record like this : sensorId:value;sensorId:value...)
  • datePLC : date of the read in the PLC
  • dateReadOut : date of the read

PLC Tools

Here is the plcToolsInstallation.sh to get the tools described in the following documentation.

Another documentation is available documentation. for more details about PLCSoftware.

Javadoc documentation for Excel converion tool is available here.

Javadoc documentation for PLCDatabase tool is available here.

Javadoc documentation for ThermalScreen tool is available here.

FAQ for PLCSoftware

Authentification prompt doesn't appear when I have to log on PLC with ThermalScreen interface. What do I have to check ?

  • First, try to connect on the PLC via web browser: [http://137.138.40.31:80] (replace the ip address by the one of the PLC you want to access). You should arrive on a Siemens web page.
  • Then, go on [http://137.138.40.31/examples/GetPut_Applet_JavaScript_en.html]: the authentification prompt should appear. If all of these steps don't work, there is a problem with the PLC. Please notify an expert.
  • Try to create a simple access to the PLC with the following code:
import de.siemens.simaticnet.itcp.api.*;
import plcaccess.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
                                                                   
public class PLCConfiguration {
    private PLCKey key;
    private final static String ipAddress = "137.138.40.31:80";
    private final static int rackNb = 0;
    private final static int slotNb = 2;
                                                                              
    public PLCConfiguration() {
       createAccess();
    }

    private void createAccess() {
   key = PLCStaticHolder.addPLC(ipAddress, rackNb, slotNb);
   PLCStaticHolder.addPLCVariable(key, new S7Anypointer(5, 1, 132, 3, 0, 1), "Temp");
    }
                                                                              
    public static void main(String args[]) {
       new PLCConfiguration();
    }                                                                                
}

Put this code in a file name PLCConfiguration.java and put it in PLCSoftware/PLCConfiguration/java/ (don't forget to backup the original PLCConfiguration.java file from this directory).

Compile it (make in PLCSoftware/PLCConfiguration) and execute it (./exec).

If the authentification prompt appears, there is a problem in the software. Please notify an expert. In any other case do the following steps :

  • Go in PLCSoftware/ThermalScreen/lib
  • Backup s7api.jar
  • Connect on PLC via ftp : ftp 137.138.40.31 (user and password you have to use to log on PLC)
  • Use the following commands :
  • cd applets
  • bin
  • get s7api.jar
  • Compile Thermal Screen software (in PLCSoftware/ThermalScreen dircetory, type "make")
  • Lauch it.

If the authentification prompt doesn't appear, the problem should come from the PLC. Please notify an expert.

Topic attachments
I Attachment History Action Size Date Who Comment
PDFpdf DocDevelopperPLCSoftware.pdf r1 manage 210.4 K 2007-03-02 - 16:04 FredericDrouhin Developer documentation
PDFpdf DocUserPLCSoftware.pdf r1 manage 37.1 K 2007-03-02 - 16:01 FredericDrouhin  
PNGpng SchemaRelationnelPLC_.png r1 manage 145.8 K 2007-03-02 - 15:55 FredericDrouhin  
Unix shell scriptsh plcToolsInstallation.sh r1 manage 0.6 K 2007-03-02 - 16:00 FredericDrouhin PLC Installation script
Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r3 - 2020-08-31 - TWikiAdminUser
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox/SandboxArchive All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback