ATLAS RPC OPC UA Tests

Howto Install Centos7

If you want to install Centos7 and try you can follow the instructions from the below web page: http://linux.web.cern.ch/linux/centos7/docs/install.shtml

OPC UA

How to Install OPC UA on Centos7

You need to get Binaries for OPC UA. You can find one from: https://gitlab.cern.ch/atlas-dcs-opcua-servers/ScaOpcUa/-/jobs/3406520 Get the zip file and try to run the binary. If it is not running then probably you missed some dependencies.

Dependencies

We have som Dependencies the main ones are :

  • GCC
  • Boost Libraries
  • Felix Software

  • Some of the common tools for development are :
sudo yum install gcc-c++ gdb boost-devel boost-regex boost-program-options boost-signals jre cmake kdiff3 graphviz valgrind doxygen rpm-build subversion xsd openssl-devel libxml2-devel xerces-c-devel python2-pip libgit2 libgit2-devel

Install Felix Software

The Server and client software has some dependencies :

wget https://atlas-project-felix.web.cern.ch/atlas-project-felix/user/dist/software/apps/4.x/felix-04.00.05-1.el7.cern.x86_64.rpm

  • Then you need to install that rpm file
rpm -U felix-04.00.05-1.el7.cern.x86_64.rpm

  • If you see the error like that :
error: Failed dependencies:
   numactl is needed by felix-04.00.05-1.el7.cern.x86_64

Then it means some of the dependencies are not satisfied.

sudo yum install numactl

  • Then you need to define the felix libraries in env variables
    1#
    2# Setup Library path in .bashrc file
    3#
    4export LD_LIBRARY_PATH=/usr/lib:/opt/felix/lib:$LD_LIBRARY_PATH
  • Then we need to configure the xml configuration file

note that if you did not install the cvmfs then you probably see the error :

./OpcUaScaServer: error while loading shared libraries: libboost_regex-gcc62-mt-1_62.so.1.62.0: cannot open shared object file: No such file or directory

Install CVMFS

to install the CVMFS you need to do the following:

  • Install the CernVM -FS packages. With yum, run
sudo yum install cvmfs cvmfs-config-default

  • For the base setup, run cvmfs_config setup. If you migrate from a previous version of CernVM -FS, check the release notes if there is anything special to do for migration.
  • Create /etc/cvmfs/default.local and open the file for editing.
  • Select the desired repositories by setting CVMFS_REPOSITORIES=repo1,repo2,.... For ATLAS, for instance, set
CVMFS_REPOSITORIES=atlas.cern.ch,atlas-condb.cern.ch,grid.cern.ch

Specify the HTTP proxy servers on your site with

CVMFS_HTTP_PROXY="http://myproxy1:port|http://myproxy2:port"

Inside CERN, it is "http://ca-proxy.cern.ch:3128".

  • Check if CernVM -FS mounts the specified repositories by
 cvmfs_config probe 

.

  • If the probe fails, try to restart autofs with
    1sudo service autofs restart.

Install From RPM

If you already installed Felix software, then you can install the OPC server from the RPM file.

https://gitlab.cern.ch/atlas-dcs-opcua-servers/ScaOpcUa/-/jobs/3430100

  • If you get the zip file containing the rpm unzip
unzip OpcUaScaServer-RPM-1.3.2-rc1.zip
cd /RPM/build_from_git/rpmbuild/RPMS/x86_64/
rpm -U  OpcUaScaServer-1.3.2-rc1.x86_64.rpm

the software is installed under "/opt/OpcUaScaServer/" . If you have a problem you can also define the PATH and LD_LIBRARY_PATH in the .bashrc file.

  • If you want to uninstall it use the command :
rpm -e  OpcUaScaServer-1.3.2-rc1.x86_64.rpm

Tooltip

How can you install different gcc releases and switch between them :

sudo yum install centos-release-scl
sudo yum install devtoolset-7-gcc*
scl enable devtoolset-7 bash
which gcc
gcc --version

SCA Simulator

To use the simulator, you need to download the Sca Software from the link : https://gitlab.cern.ch/atlas-dcs-common-software/ScaSoftware/-/jobs/3776608

under :

/ScaSoftware/build/Demonstrators/SimulatorOverNetIo 

directory you can find the executable run as :

./simulator_netio -t TRC

here -t option is trace level :

  • ERR : Error
  • WRN : Warning
  • INF : Info
  • DBG : Debug
  • TRC : trace

the other options are:

[shift@localhost SimulatorOverNetIo]$ ./simulator_netio --help
  -h [ --help ]                        show help
  -t [ --trace_level ] arg (=INF)      Trace level, one of: ERR,WRN,INF,DBG,TRC
  -x [ --requests_port ] arg (=29000)  TCP/IP port on which netio will listen 
                                       for requests
  -y [ --replies_port ] arg (=29001)   TCP/IP port to which netio will publish 
                                       the replies
  -e [ --elink_id ] arg (=1)           Elink-id at which this simulated SCA 
                                       listens
  --noise_replies                      If selected, random traffic will be 
                                       injected into replies. Simulates 
                                       unconnected elink/fibre/ broken 
                                       firmware. 
  --noise_replies_interval arg (=1000) The delay between consecutive 
                                       transmission of noise frames in 
                                       microseconds
  --requests_loss                      If selected, certain requests will be 
                                       ignored (simulating loss). The 
                                       probability is chosen by 
                                       --requests_loss_prob
  --requests_loss_prob arg (=0.001)    Chance of losing a request. 1.0 
                                       corresponds to full loss, 0.0 to no 
                                       loss. Valid only when --requests_loss 
                                       chosen

  • OPC Simulator: to run simulator
    shiftlocalhost:-Downloads-ScaSoftware-build-Demonstrators-SimulatorOverNetIo_017.png

Simple Simulator Test

To run the SCA server you need the configuration file which describes the server to which server it need to connect and by using which port:
    1<SCA address="simple-netio://direct/127.0.0.1/29000/29001/01" name="scaFelix1"
    2

here using

  • Comminucation protocol : simple-netio://direct/
  • interface ip :127.0.0.1
  • TCP request listening port :29000
  • TCP reply listening port : 29000
  • elink id :01

    1<?xml version="1.0" encoding="UTF-8"?>
    2<configuration xmlns="http://cern.ch/quasar/Configuration" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://cern.ch/quasar/Configuration Configuration.xsd">
    3	<StandardMetaData>
    4		<Log>
    5			<GeneralLogLevel logLevel="INF" />
    6		</Log>
    7	</StandardMetaData>
    8	
    9	<SCA address="simple-netio://direct/127.0.0.1/29000/29001/01" name="scaFelix1" supervised="true" idConstraint="dont_care" recoveryActionScaStayedPowered="only_configure" recoveryActionScaWasRepowered="reset_and_configure" managementFromAddressSpace="only_if_kaputt">
   10
   11		 
   12		<DigitalIOSystem name="gpio">
   13			<DigitalIO name="RSTB_ADCL3A3" isInput="false" id="0" ></DigitalIO>
   14			<DigitalIO name="RSTB_ADCL3A4" isInput="false" id="1" ></DigitalIO>
   15			<DigitalIO name="RSTB_ADCL2A4" isInput="false" id="2" ></DigitalIO>
   16			<DigitalIO name="RSTB_ADCL2A3" isInput="false" id="3" ></DigitalIO>
   17			<DigitalIO name="RSTB_ADCL4A4" isInput="false" id="4" ></DigitalIO>
   18			<DigitalIO name="RSTB_ADCL1A3" isInput="false" id="5" ></DigitalIO>
   19			<DigitalIO name="RSTB_ADCL1A4" isInput="false" id="6" ></DigitalIO>
   20			<DigitalIO name="RSTB_ADCL4A3" isInput="false" id="7" ></DigitalIO>
   21			<DigitalIO name="RSTB_ADCL1A1" isInput="false" id="8" ></DigitalIO>
   22			<DigitalIO name="RSTB_ADCL1A2" isInput="false" id="9" ></DigitalIO>
   23			<DigitalIO name="RSTB_ADCL3A2" isInput="false" id="10"></DigitalIO>
   24			<DigitalIO name="RSTB_ADCL2A2" isInput="false" id="11"></DigitalIO>
   25			<DigitalIO name="RSTB_ADCL2A1" isInput="false" id="12"></DigitalIO>
   26			<DigitalIO name="RSTB_ADCL4A1" isInput="false" id="13"></DigitalIO>
   27			<DigitalIO name="RSTB_ADCL3A1" isInput="false" id="14"></DigitalIO>
   28			<DigitalIO name="RSTB_ADCL4A2" isInput="false" id="15"></DigitalIO>
   29			<DigitalIO name="MTX-RST" isInput="false" id="21"></DigitalIO>
   30			<DigitalIO name="MTRX-RST" isInput="false" id="22"></DigitalIO>
   31			<DigitalIO name="Ctrl1" isInput="false" id="24"></DigitalIO>
   32			<DigitalIO name="Ctrl2" isInput="false" id="25"></DigitalIO>
   33			<DigitalIO name="Ctrl3" isInput="false" id="26"></DigitalIO>
   34			<DigitalIO name="Ctrl4" isInput="false" id="27"></DigitalIO>
   35			<DigitalIO name="Ctrl5" isInput="false" id="23"></DigitalIO>
   36			
   37		</DigitalIOSystem>
   38
   39		<DacSystem name="dacSystem">
   40			<DacOutput name="A" id="A"></DacOutput>
   41			<DacOutput name="B" id="B"></DacOutput>
   42			<DacOutput name="C" id="C"></DacOutput>
   43			<DacOutput name="D" id="D"></DacOutput>
   44		</DacSystem>
   45		  
   46		<I2cMaster sclPadCmosOutput="false"  name="MTRx"  masterId="8" busSpeed="200">
   47			<I2cSlave numberOfBytes="1" address="4" name="register04" addressingMode="7"></I2cSlave>
   48			<I2cSlave numberOfBytes="1" address="5" name="register05" addressingMode="7"></I2cSlave>
   49		</I2cMaster>
   50		
   51		
   52		<I2cMaster sclPadCmosOutput="false"  name="MTxLOCx2_1"  masterId="4" busSpeed="200">
   53	
   54			<I2cSlave numberOfBytes="1" address="4" name="register04" addressingMode="7"></I2cSlave>
   55			<I2cSlave numberOfBytes="1" address="5" name="register05" addressingMode="7"></I2cSlave>
   56			<I2cSlave numberOfBytes="1" address="6" name="register06" addressingMode="7"></I2cSlave>
   57			<I2cSlave numberOfBytes="1" address="7" name="register07" addressingMode="7"></I2cSlave>
   58			<I2cSlave numberOfBytes="1" address="8" name="register08" addressingMode="7"></I2cSlave>
   59			<I2cSlave numberOfBytes="1" address="9" name="register09" addressingMode="7"></I2cSlave>
   60			<I2cSlave numberOfBytes="1" address="10" name="register0a" addressingMode="7"></I2cSlave>
   61			<I2cSlave numberOfBytes="1" address="11" name="register0b" addressingMode="7"></I2cSlave>
   62			
   63			<I2cSlave numberOfBytes="1" address="11" name="ctrl_1" addressingMode="7"></I2cSlave>
   64			
   65		</I2cMaster>
   66		<I2cMaster sclPadCmosOutput="false"  name="MTxLOCx2_2"  masterId="5" busSpeed="200">
   67	
   68			<I2cSlave numberOfBytes="1" address="4" name="register04" addressingMode="7"></I2cSlave>
   69			<I2cSlave numberOfBytes="1" address="5" name="register05" addressingMode="7"></I2cSlave>
   70			<I2cSlave numberOfBytes="1" address="6" name="register06" addressingMode="7"></I2cSlave>
   71			<I2cSlave numberOfBytes="1" address="7" name="register07" addressingMode="7"></I2cSlave>
   72			<I2cSlave numberOfBytes="1" address="8" name="register08" addressingMode="7"></I2cSlave>
   73			<I2cSlave numberOfBytes="1" address="9" name="register09" addressingMode="7"></I2cSlave>
   74			<I2cSlave numberOfBytes="1" address="10" name="register0a" addressingMode="7"></I2cSlave>
   75			<I2cSlave numberOfBytes="1" address="11" name="register0b" addressingMode="7"></I2cSlave>
   76		</I2cMaster>
   77		<I2cMaster sclPadCmosOutput="false"  name="MTxLOCx2_3"  masterId="6" busSpeed="200">
   78	
   79			<I2cSlave numberOfBytes="1" address="4" name="register04" addressingMode="7"></I2cSlave>
   80			<I2cSlave numberOfBytes="1" address="5" name="register05" addressingMode="7"></I2cSlave>
   81			<I2cSlave numberOfBytes="1" address="6" name="register06" addressingMode="7"></I2cSlave>
   82			<I2cSlave numberOfBytes="1" address="7" name="register07" addressingMode="7"></I2cSlave>
   83			<I2cSlave numberOfBytes="1" address="8" name="register08" addressingMode="7"></I2cSlave>
   84			<I2cSlave numberOfBytes="1" address="9" name="register09" addressingMode="7"></I2cSlave>
   85			<I2cSlave numberOfBytes="1" address="10" name="register0a" addressingMode="7"></I2cSlave>
   86			<I2cSlave numberOfBytes="1" address="11" name="register0b" addressingMode="7"></I2cSlave>
   87		</I2cMaster>
   88		<I2cMaster sclPadCmosOutput="false"  name="MTxLOCx2_4"  masterId="7" busSpeed="200">
   89	
   90			<I2cSlave numberOfBytes="1" address="4" name="register04" addressingMode="7"></I2cSlave>
   91			<I2cSlave numberOfBytes="1" address="5" name="register05" addressingMode="7"></I2cSlave>
   92			<I2cSlave numberOfBytes="1" address="6" name="register06" addressingMode="7"></I2cSlave>
   93			<I2cSlave numberOfBytes="1" address="7" name="register07" addressingMode="7"></I2cSlave>
   94			<I2cSlave numberOfBytes="1" address="8" name="register08" addressingMode="7"></I2cSlave>
   95			<I2cSlave numberOfBytes="1" address="9" name="register09" addressingMode="7"></I2cSlave>
   96			<I2cSlave numberOfBytes="1" address="10" name="register0a" addressingMode="7"></I2cSlave>
   97			<I2cSlave numberOfBytes="1" address="11" name="register0b" addressingMode="7"></I2cSlave>
   98		</I2cMaster>
   99		
  100		<I2cMaster sclPadCmosOutput="false"  name="ADC_LOCx2_1"  masterId="0" busSpeed="400">
  101			
  102			<I2cSlave numberOfBytes="1" address="64" name="ctrl_adc1" addressingMode="7"></I2cSlave>
  103			<I2cSlave numberOfBytes="1" address="80" name="ctrl_adc2" addressingMode="7"></I2cSlave>
  104			<I2cSlave numberOfBytes="1" address="96" name="ctrl_adc3" addressingMode="7"></I2cSlave>
  105			<I2cSlave numberOfBytes="1" address="112" name="ctrl_adc4" addressingMode="7"> </I2cSlave>
  106			
  107		
  108			<I2cSlave numberOfBytes="8" address="512" name="write_1" addressingMode="10"></I2cSlave>
  109			<I2cSlave numberOfBytes="8" address="520" name="read_1" addressingMode="10"></I2cSlave>
  110			<I2cSlave numberOfBytes="8" address="640" name="write_2" addressingMode="10"></I2cSlave>
  111			<I2cSlave numberOfBytes="8" address="648" name="read_2" addressingMode="10"></I2cSlave>
  112			<I2cSlave numberOfBytes="8" address="768" name="write_3" addressingMode="10"></I2cSlave>
  113			<I2cSlave numberOfBytes="8" address="776" name="read_3" addressingMode="10"></I2cSlave>
  114			<I2cSlave numberOfBytes="8" address="896" name="write_4" addressingMode="10"></I2cSlave>
  115			<I2cSlave numberOfBytes="8" address="904" name="read_4" addressingMode="10"></I2cSlave>	
  116			
  117		</I2cMaster>
  118
  119		<I2cMaster sclPadCmosOutput="false"  name="ADC_LOCx2_2"  masterId="1" busSpeed="400">
  120			
  121			<I2cSlave numberOfBytes="1" address="64" name="ctrl_adc1" addressingMode="7"></I2cSlave>
  122			<I2cSlave numberOfBytes="1" address="80" name="ctrl_adc2" addressingMode="7"></I2cSlave>
  123			<I2cSlave numberOfBytes="1" address="96" name="ctrl_adc3" addressingMode="7"></I2cSlave>
  124			<I2cSlave numberOfBytes="1" address="112" name="ctrl_adc4" addressingMode="7"></I2cSlave>
  125			
  126		
  127			<I2cSlave numberOfBytes="8" address="512" name="write_1" addressingMode="10"></I2cSlave>
  128			<I2cSlave numberOfBytes="8" address="520" name="read_1" addressingMode="10"></I2cSlave>
  129			<I2cSlave numberOfBytes="8" address="640" name="write_2" addressingMode="10"></I2cSlave>
  130			<I2cSlave numberOfBytes="8" address="648" name="read_2" addressingMode="10"></I2cSlave>
  131			<I2cSlave numberOfBytes="8" address="768" name="write_3" addressingMode="10"></I2cSlave>
  132			<I2cSlave numberOfBytes="8" address="776" name="read_3" addressingMode="10"></I2cSlave>
  133			<I2cSlave numberOfBytes="8" address="896" name="write_4" addressingMode="10"></I2cSlave>
  134			<I2cSlave numberOfBytes="8" address="904" name="read_4" addressingMode="10"></I2cSlave>	
  135			
  136		</I2cMaster>
  137		<I2cMaster sclPadCmosOutput="false"  name="ADC_LOCx2_3"  masterId="2" busSpeed="400">
  138			
  139			<I2cSlave numberOfBytes="1" address="64" name="ctrl_adc1" addressingMode="7"></I2cSlave>
  140			<I2cSlave numberOfBytes="1" address="80" name="ctrl_adc2" addressingMode="7"></I2cSlave>
  141			<I2cSlave numberOfBytes="1" address="96" name="ctrl_adc3" addressingMode="7"></I2cSlave>
  142			<I2cSlave numberOfBytes="1" address="112" name="ctrl_adc4" addressingMode="7"></I2cSlave>
  143			
  144		
  145			<I2cSlave numberOfBytes="8" address="512" name="write_1" addressingMode="10"></I2cSlave>
  146			<I2cSlave numberOfBytes="8" address="520" name="read_1" addressingMode="10"></I2cSlave>
  147			<I2cSlave numberOfBytes="8" address="640" name="write_2" addressingMode="10"></I2cSlave>
  148			<I2cSlave numberOfBytes="8" address="648" name="read_2" addressingMode="10"></I2cSlave>
  149			<I2cSlave numberOfBytes="8" address="768" name="write_3" addressingMode="10"></I2cSlave>
  150			<I2cSlave numberOfBytes="8" address="776" name="read_3" addressingMode="10"></I2cSlave>
  151			<I2cSlave numberOfBytes="8" address="896" name="write_4" addressingMode="10"></I2cSlave>
  152			<I2cSlave numberOfBytes="8" address="904" name="read_4" addressingMode="10"></I2cSlave>	
  153			
  154		</I2cMaster>
  155		<I2cMaster sclPadCmosOutput="false"  name="ADC_LOCx2_4"  masterId="3" busSpeed="400">
  156			
  157			<I2cSlave numberOfBytes="1" address="64" name="ctrl_adc1" addressingMode="7"></I2cSlave>
  158			<I2cSlave numberOfBytes="1" address="80" name="ctrl_adc2" addressingMode="7"></I2cSlave>
  159			<I2cSlave numberOfBytes="1" address="96" name="ctrl_adc3" addressingMode="7"></I2cSlave>
  160			<I2cSlave numberOfBytes="1" address="112" name="ctrl_adc4" addressingMode="7"></I2cSlave>
  161			
  162		
  163			<I2cSlave numberOfBytes="8" address="512" name="write_1" addressingMode="10"></I2cSlave>
  164			<I2cSlave numberOfBytes="8" address="520" name="read_1" addressingMode="10"></I2cSlave>
  165			<I2cSlave numberOfBytes="8" address="640" name="write_2" addressingMode="10"></I2cSlave>
  166			<I2cSlave numberOfBytes="8" address="648" name="read_2" addressingMode="10"></I2cSlave>
  167			<I2cSlave numberOfBytes="8" address="768" name="write_3" addressingMode="10"></I2cSlave>
  168			<I2cSlave numberOfBytes="8" address="776" name="read_3" addressingMode="10"></I2cSlave>
  169			<I2cSlave numberOfBytes="8" address="896" name="write_4" addressingMode="10"></I2cSlave>
  170			<I2cSlave numberOfBytes="8" address="904" name="read_4" addressingMode="10"></I2cSlave>	
  171			
  172		</I2cMaster>
  173	</SCA>
  174
  175</configuration>

* Configuration of XML file before editing seems like below, it comminucate simple-netio interface . ..
configZek.xml3.png

Run Server

  • Demo Server from Unified Automation page: run uaserver
    shiftlocalhost:-Downloads-opc-sdk-bin_009.png

Here xml file that i modified is configZek.xml and the original example is config.xml.cern.

Run UaExpert :

To get Ua Expert you need to go the webpage https://www.unified-automation.com/products/development-tools/uaexpert.html and download the UaExpert software available both for Windows and Linux.

  • Extract the Ua Expert into directory and find the UaExpert-x86_64.AppImage. You need to run this:
    uaexpert_002.png
It will first asks you to install certificates. Then you also can manage certificates in Manage Certificate section :
  • UA expert certificate
    Manage_Certificates_014.png;

  • UA Expert user interface :
    Workspace_1_003.png

  • To Add Server to UA Expert :
    Add_Server_008.png
  • To List the servers at UA Expert:
    Add_Server_010.png

  • UA Expert accessed the simulator and lists the demo datas:
    Unified_Automation_UaExpert_-_The_OPC_Unified_Architecture_Client_-_NewProject-_013.png

Useful Links

-- ZekeriyaUysal - 2019-02-08

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng Add_Server_008.png r1 manage 55.2 K 2019-04-17 - 13:04 ZekeriyaUysal OPC Simulator
PNGpng Add_Server_010.png r1 manage 109.9 K 2019-04-17 - 13:04 ZekeriyaUysal OPC Simulator
PNGpng Manage_Certificates_014.png r1 manage 49.9 K 2019-04-17 - 13:06 ZekeriyaUysal Opc simulator
PNGpng Unified_Automation_UaExpert_-_The_OPC_Unified_Architecture_Client_-_NewProject-_013.png r1 manage 218.5 K 2019-04-17 - 13:04 ZekeriyaUysal OPC Simulator
PNGpng Workspace_1_003.png r1 manage 177.2 K 2019-04-17 - 13:04 ZekeriyaUysal OPC Simulator
Unknown file formatcern config.xml.cern r1 manage 57.6 K 2019-04-17 - 13:40 ZekeriyaUysal Config files
XMLxml configZek.xml r1 manage 10.9 K 2019-04-17 - 13:40 ZekeriyaUysal Config files
PNGpng configZek.xml1.png r1 manage 186.9 K 2019-04-17 - 13:30 ZekeriyaUysal OPC Simulator
PNGpng configZek.xml2.png r1 manage 127.0 K 2019-04-17 - 13:30 ZekeriyaUysal OPC Simulator
PNGpng configZek.xml3.png r1 manage 169.3 K 2019-04-17 - 13:37 ZekeriyaUysal example xml file
PNGpng configZek.xml_modified_–_KWrite_019.png r1 manage 186.9 K 2019-04-17 - 13:04 ZekeriyaUysal OPC Simulator
PNGpng configZek.xml_–_KWrite_023.png r1 manage 169.3 K 2019-04-17 - 13:04 ZekeriyaUysal OPC Simulator
PNGpng shiftlocalhost:-Downloads-ScaSoftware-build-Demonstrators-SimulatorOverNetIo_017.png r1 manage 40.8 K 2019-04-17 - 13:04 ZekeriyaUysal OPC Simulator
PNGpng shiftlocalhost:-Downloads-opc-sdk-bin_009.png r1 manage 28.9 K 2019-04-17 - 13:04 ZekeriyaUysal OPC Simulator
PNGpng shiftlocalhost:-Downloads-opc_022.png r1 manage 104.1 K 2019-04-17 - 13:05 ZekeriyaUysal OPC Simulator
PNGpng uaexpert_002.png r1 manage 43.8 K 2019-04-17 - 13:04 ZekeriyaUysal OPC Simulator
Edit | Attach | Watch | Print version | History: r26 < r25 < r24 < r23 < r22 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r26 - 2019-04-17 - ZekeriyaUysal
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox All webs login

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