OSCAT BASIC Introduction - RWTH-EBC/AixOCAT GitHub Wiki

2. Introduction

2.1. Objectives

OSCAT is for " Open Source Community for Automation Technology ".
OSCAT created a Open Source Library referenced to the IEC61131-3 stan-
dard, which can be dispensed with vendor-specifc functions and therefore
ported to all IEC61131-3-compatible programmable logic controllers. Alt-
hough trends for PLC in the use of vendor-specifc libraries are usually sol-
ved efciently and these libraries are also provided in part free of charge,
there are still major disadvantages of using it:
  1. The libraries of almost all manufacturers are being protected and the Source Code is not freely accessible, which is in case of a error and correction of the error extremely difcult, often impossible.
  2. The graphic development of programs with vendor-specifc libraries can quickly become confusing, inefcient and error-prone, because existing functions can not be adjusted and expanded to the actual needs. The Source codes are not available.
  3. A change of hardware, especially the move to another manufactur- er, is prevented by the proprietary libraries and the benefts that a standard such as IEC61131 ofer would be so restricted. A replace- ment of a proprietary library of a competitor is excluded, because the libraries of the manufacturers difer greatly in scope and con- tent.
  4. The understanding of complex modules without an insight into the source code is often very difcult. Therefore the programs are inef- cient and error prone. OSCAT will create with the open OSCAT Library a powerful and compre- hensive standard for the programming of PLC, which is available in the Source Code and verifed and tested by a variety of applications in detail. Extensive knowledge and suggestions will continue to fow through a va- riety of applications to the library. Thus, the library can be described as very practical. OSCAT understands his library as a development template and not as a mature product. The user is solely responsible for the tests in its application modules with the appropriate procedures and to verify the necessary accuracy, quality and functionality. At this point we refe- rence to the license and the disclaimer mentioned in this documentation.

2.2. Conventions

  1. Direct modifcation in memory: Functions, which modify input values with pointer like Array_Sort, starts with an underscore "". Array_Sort sorts an array directly in memory, which has the signifcant advantage that a very large array may not be passed to the function and therefore memory of the size of the array and the time is saved for copying. However, it is only re- commended for experienced users to use these functions, as a mi- suse may lead to serious errors and crashes! In the application of functions that begin with "", special care is appropriate and in parti- cular to ensure that the call parameters never accept undefned va- lues.
  2. Naming of functions: Function modules with timing manner, such as the function PT1 are described by naming FT_ (ie. FT_PT1). Functions wi- thout a time reference are indicated with F_.
  3. Logical equations: Within this guide, the logical links are used & for AND , + for OR, /A for negated A and # for a XOR (exclusive OR).
  4. Setup values for modules: To achieve that the application and programming remains clear and that complex functions can be represented simply, many of the mo- dules of the library OSCAT have adjustable parameters that can be edited in application by double-clicking on the graphic symbol of the module. Double-clicking on the icon opens a dialog box that al- lows you to edit the Setup values. If a function is used multiple times, so the setup values are set individually for each module. The processing by double-clicking works on CoDeSys exclusively in CFC. In ST, all parameters, including the se- tup parameters may passed in the function call. The setup parame- ters are simply added to the normal inputs. The parameters are in the graphical interface entered by double click and then processed as constants under IEC61131. It should be noted that time values has to be written with syntax "T#200ms" and TRUE and FALSE in ca- pital letters.
  5. Error and status Reporting (ESR): More complex components are largely contributed a Error or status output. A Error Output is 0 if no error occurs during the execution. If,
however, in a module a error occurs, this output takes a value in the
range 1 99 and reports a error with a error number. A status or Er-
ror Collection module may collect these messages and time-stam-
ped, store them in a database or array, or by TCP/IP forward it to
higher level systems. An output of the type Status is compatible
with a Error starting with identical function. However, a status out-
put reports not only errors but also leads on activities of the module
log. Values between 199 are still error messages. Between
100199 are located the reports of state changes. The range from
200255 is reserved for Debug Messages. With this, within the libra-
ry OSCAT standard functionality, a simple and comprehensive option
is ofered to integrate operational messages and error messages in
a simple manner, without afecting the function of a system. Modu-
les that support this procedure, as of revision 1.4 are marked "ESR-
ready." For more information on ESR modules, see the section
"Other functions".

2.3. Test environment

The OSCAT library is designed with CoDeSys and tested on diferent sys-
tems.
The test environment consists of the following systems:
  1. Beckhof BX 9000 with TwinCAT PLC Control Version 2.10.0
  2. Beckhof CX 9001-1001 with TwinCAT PLC Control Version 2.10.0
  3. Wago 750-841 with CoDeSys Version 2.3.9.31
  4. Möller EC4P222 with CoDeSys Version 2.3.9.31
  5. CoDeSys Simulation on I386 CoDeSys 2.3.9.31
  6. CoDeSys Simulation on I386 CoDeSys 3.4
  7. S7 and STEP 7: The OSCAT library is compiled and verifed on STEP7 since version 1.5.
  8. PCWORX / MULTIPROG: The OSCAT library since version 2.6 compiled on MULTIPROG and verifed.
  9. Bosch Rexroth IndraLogic XLC L25/L45/L65 with Indraworks 12VRS 10.Bosch Rexroth IndraMotion MLC L25/L45/L65 with Indraworks 12VRS 11.Bosch Rexroth IndraMotion MTX L45/L65/L85 with Indraworks 12VRS
We are constantly striving OSCAT the library to also test in other test envi-
ronments.

2.4. Global constants

OSCAT The library tries to avoid global variables, an attempt to be easily
integrated into other environments. Global variables are not necessary for
function and exchange of data between devices. The setup and confgura-
tion is fully implemented within the modules to ensure high modularity
and portability. For physical and mathematical constants we decided for
reasons of clarity to use global constants.
MATH :
MATH defned mathematical constants. The constants are defned in the
TYPE defnition CONSTANTS_MATH.
PHYS :
PHYS defnes physical constants. The constants are defned in the TYPE
defnition CONSTANTS_PHYS.
LANGUAGE :
LANGUAGE defnes language. The settings are defned in the TYPE defniti-
on CONSTANTS_LANGUAGE.
SETUP :
SETUP defnes general basic settings. The settings are defned in the TYPE
defnition CONSTANTS_SETUP.
LOCATION :
LOCATION defnes location settings, including but also defnitions holiday.
The settings are defned in the TYPE defnition CONSTANTS_LOCATION.
String_Length : INT: = 250
String_Length is by default 250 characters, and is used by STRING functi-
on to avoid a range overfow when processing STRINGS. STRING_LENGTH
shall also determine within the OSCAT LIB the maximum length, which can
lead to high memory consumption when heavily used. If in a Application
short STRINGS must be processed, the length may be reduced accordingly
on these SETUP constant STRING. We recommend to defne STRINGS wi-
thin the application with the aid of this constant. STRINGS, if longer than
80 characters, may need to increase this constant at a value to 255.
New_string: STRING(String_Length).
WIth this defnition the newly defned STRING automatically defnes the
length of STRING_LENGTH and can be changed globally if needed.
LIST_LENGTH : INT := 250.
LIST_LENGTH is by default 250 characters and sets the size of lists.

2.5. Releases

This manual is updated by OSCAT continuously. It is recommended to dow-
nload the latest version of the OSCAT manual under http://www.OSCAT.DE. Here
the most current Manual is available for download. In addition to the Ma-
nual OSCAT prepared a detailed revision history. The OSCAT revisionhistory
lists all revisions of individual modules, with amendments and at what re-
lease the library of this component is included.

2.6. Support

Support is given by the users in the forum
WWW.OSCAT.DE. A claim for support does not exists, even if the library or
parts of the library are faulty. The support in the forum under the OSCAT is
provided for users voluntarily and with each other. Updates to the library
and documentation are usually made available once a month on the home
page of OSCAT under WWW.OSCAT.DE. A claim for maintenance, troubles-
hooting and software maintenance of any kind is generally not existing
from OSCAT. Please do not send support requests by email to OSCAT. Re-
quests can be processed faster and more efectively when the inquiries
are made in our forum.
⚠️ **GitHub.com Fallback** ⚠️