Commit dcad4301 authored by claes's avatar claes

imaged and examples included

parent ec0befd9
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
!/** !/**
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_logic.h ! @Code rt_plc_macro_logic.h
! @image orm_aarithm_fo.gif
! Optional programmable arithmetical expression in the C ! Optional programmable arithmetical expression in the C
! programming language. The expression is edited by means ! programming language. The expression is edited by means
! of the Attribute Editor at the object's Expression ! of the Attribute Editor at the object's Expression
...@@ -15,8 +16,8 @@ ...@@ -15,8 +16,8 @@
! is translated at the compilation. ! is translated at the compilation.
! The Expression attribute is shown in the object. ! The Expression attribute is shown in the object.
! !
! Up to 8 analog ( A1, ..., A8) and 8 digital ( d1, ..., ! Up to 8 analog ( A1, ..., A8) and 8 digital ( d1, ...,d8)
! d8) inputs. ! inputs.
! Digital inputs may be inverted either by means of the ! Digital inputs may be inverted either by means of the
! Attribute Editor, or by the logical operator '!' in the ! Attribute Editor, or by the logical operator '!' in the
! Expression attribute. ! Expression attribute.
...@@ -37,19 +38,27 @@ ...@@ -37,19 +38,27 @@
! Mathematical functions in the C programming language ! Mathematical functions in the C programming language
! can be used, for instance: ! can be used, for instance:
! !
! _ exp(A1) exponential function ! - exp(A1) exponential function
! _ log10(A1) base-10 logarithm of A1 ! - log10(A1) base-10 logarithm of A1
! _ sin(A1) sine of A1 ! - sin(A1) sine of A1
! _ (1.2E3 + A1) * ( A2 + 3.7 ) arithmetic, note the constants. ! - (1.2E3 + A1) * ( A2 + 3.7 ) arithmetic, note the constants.
! - fabs( A1) absolute value ! - fabs( A1) absolute value
! - pow(A1, A2) A1 rasied to the A2-th power. ! - pow(A1, A2) A1 rasied to the A2-th power.
! - there is an often used conditional operator, '?', in ! - there is an often used conditional operator, '?', in
! the C programming language used to evaluate ! the C programming language used to evaluate
! alternatives. In the following example '&&' means ! alternatives. In the following example '&&' means
! logical AND, ! logical AND,
! (d1 && d2) ? A1 + A2 : A3, means that VAL = A1+ A2, ! (d1 && d2) ? A1 + A2 : A3, means that VAL = A1+ A2,
! if d1 and d2 are TRUE , otherwise VAL = A3 ! if d1 and d2 are TRUE , otherwise VAL = A3
! !
! Example
!
! This example shows how digital signals can be counted. Some signals
! are counted if they are TRUE others if they are FALSE and then the
! sum is stored. Node thad Di1 and Di2 are included in the sum if
! they are FALSE.
! @image orm_en1-17.gif
! See Also ! See Also
! DArithm, which calculates the value of logical ! DArithm, which calculates the value of logical
! expressions. ! expressions.
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_arithm.c ! @Code rt_plc_arithm.c
! Time delay of an analog signal. ! Time delay of an analog signal.
! @image orm_adelay_fo.gif
! !
! The time delay Tim can vary within the interval: ! The time delay Tim can vary within the interval:
! { 0 - 100 x MaxCount x ScanTime } ! { 0 - 100 x MaxCount x ScanTime }
...@@ -34,6 +35,17 @@ ...@@ -34,6 +35,17 @@
! signal is stored in shift register position 1. ! signal is stored in shift register position 1.
! The output signal is fetched from the register ! The output signal is fetched from the register
! representing the actual delay. ! representing the actual delay.
!
! Example
!
! 1. With MaxCount = 1 anad ScanTime = 20 ms the maximum delay time
! is 100 1 1 / 50 seconds.
! if the delay Tim = 1, ActVal(t) will be = In(t-50), i.e. the input
! signal is delayed by 50 execution cycles.
!
! 2. If MaxCount = 1 and ScanTime = 1 second represent each register the
! delay of one second. Tim specifies from which register to get ActVal.
! @image orm_en1-19.gif
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Adelay $ClassDef 3 Object Adelay $ClassDef 3
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
! @Code rt_plc_macro_logic.h ! @Code rt_plc_macro_logic.h
! AND-gate for up to 8 inputs. Used inputs do not have to ! AND-gate for up to 8 inputs. Used inputs do not have to
! be chosen consecutively. ! be chosen consecutively.
! @image orm_and_fo.gif
! The basic symbol has 2 inputs. By means of the ! The basic symbol has 2 inputs. By means of the
! Attribute Editor the number of inputs can be changed ! Attribute Editor the number of inputs can be changed
! and individual inputs be inverted. ! and individual inputs be inverted.
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
! @Summary Expands the number of analog attributes that can be handled in a DataArithm. ! @Summary Expands the number of analog attributes that can be handled in a DataArithm.
! The ApCollect object expands the number of analog attribues that ! The ApCollect object expands the number of analog attribues that
! can be handled in a DataArithm object. ! can be handled in a DataArithm object.
! ! @image orm_apcollect_fo.gif
! The ApCollect has 24 analog inputs, which values are stored in an array. ! The ApCollect has 24 analog inputs, which values are stored in an array.
! By connecting the output of the ApCollect object to a Data input of a ! By connecting the output of the ApCollect object to a Data input of a
! DataArithm object, it is possible to handle the array in the code of the ! DataArithm object, it is possible to handle the array in the code of the
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
! @Summary Expands the number of analog outputs that can be handled in a DataArithm. ! @Summary Expands the number of analog outputs that can be handled in a DataArithm.
! The ApDistribute expands the number of analog outputs that can be ! The ApDistribute expands the number of analog outputs that can be
! handled in a DataArithm object. ! handled in a DataArithm object.
! ! @image orm_apdistribute_fo.gif
! The DpDistribute has 24 analog outputs, which values can be set from ! The DpDistribute has 24 analog outputs, which values can be set from
! an array of Float32 declared in the code of a DataArithm. By connecting ! an array of Float32 declared in the code of a DataArithm. By connecting
! the data input of the ApDistribute to an data output of a DataArithm, ! the data input of the ApDistribute to an data output of a DataArithm,
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_sup.h ! @Code rt_plc_macro_sup.h
! Analog Supervisory. ! Analog Supervisory.
! @image orm_asup_fo.gif
! !
! Supervises an analog quantity in an arbitrary object in ! Supervises an analog quantity in an arbitrary object in
! regard to deviation above or below the alarm limit. ! regard to deviation above or below the alarm limit.
...@@ -35,10 +36,10 @@ ...@@ -35,10 +36,10 @@
! activities. ! activities.
! !
! Different types of activities exist; (see EventType ) ! Different types of activities exist; (see EventType )
! · ALARM The message remains as long as the alarm ! ALARM The message remains as long as the alarm
! position exists and no acknowledgement is ! position exists and no acknowledgement is
! !
! · INFO If the message demands an acknowledgement ! INFO If the message demands an acknowledgement
! this is sent to the info part of the alarm ! this is sent to the info part of the alarm
! window from, where it can be acknowledged ! window from, where it can be acknowledged
! otherwise only to the event list. ! otherwise only to the event list.
...@@ -60,9 +61,9 @@ ...@@ -60,9 +61,9 @@
! acknowledgement can be done too. ! acknowledgement can be done too.
! Different types of out units exist: ! Different types of out units exist:
! !
! . OPERATOR: The select list is defined by an attribute ! - OPERATOR: The select list is defined by an attribute
! in a User object. ! in a User object.
! · PRINTER : The select list is defined by an ! - PRINTER : The select list is defined by an
! attribute in an ! attribute in an
! EventPrinter object. ! EventPrinter object.
! !
...@@ -72,7 +73,8 @@ ...@@ -72,7 +73,8 @@
! specifies the hierarchies from which messages are to be ! specifies the hierarchies from which messages are to be
! received. ! received.
! !
! Hints ! Hints
!
! The supervised quantity may belongs to an arbitrary ! The supervised quantity may belongs to an arbitrary
! object. This means not only signal objects but also ! object. This means not only signal objects but also
! other objects may supervised; e.g. attributes in a ! other objects may supervised; e.g. attributes in a
...@@ -83,6 +85,8 @@ ...@@ -83,6 +85,8 @@
! configured outside PLC program, then it is done by the ! configured outside PLC program, then it is done by the
! Configuration Editor and ! Configuration Editor and
! the messagehandler (=mh) takes care of the supervision. ! the messagehandler (=mh) takes care of the supervision.
! @image orm_en1-23.gif
! The Supervisory Objects may also be used Outside PLC Programs
! !
! See Also ! See Also
! !
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_string.h ! @Code rt_plc_macro_string.h
! Convert analog value to string. ! Convert analog value to string.
! ! @image orm_atostr_fo.gif
!
! The AtoStr object converts the value of the analog input to ! The AtoStr object converts the value of the analog input to
! at string stored in ActVal. ! at string stored in ActVal.
! !
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
! @Code rt_plc_macro_logic.h ! @Code rt_plc_macro_logic.h
! Points out a data segment in rtdb where the items will ! Points out a data segment in rtdb where the items will
! be backed up on a file. ! be backed up on a file.
! @image orm_backup_fo.gif
! !
! If the segment pointed out by the Backup object was ! If the segment pointed out by the Backup object was
! created in the development environment the backup may ! created in the development environment the backup may
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_io.c ! @Code rt_plc_io.c
! Binary Coded Decimal Digital output. ! Binary Coded Decimal Digital output.
! @image orm_en1-25.gif
! !
! Represents a decimal floating point number on 4 binary ! Represents a decimal floating point number on 4 binary
! coded decimal (BCD) digits (= 16 digital signals). ! coded decimal (BCD) digits (= 16 digital signals).
......
...@@ -13,6 +13,9 @@ ...@@ -13,6 +13,9 @@
! !
! Used when a larger description is to be done; e.g. in a ! Used when a larger description is to be done; e.g. in a
! Document object. ! Document object.
!
! Example
! @image orm_en1-28.gif
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object BodyText $ClassDef 25 Object BodyText $ClassDef 25
...@@ -25,6 +28,7 @@ SObject pwrb:Class ...@@ -25,6 +28,7 @@ SObject pwrb:Class
!/** !/**
! The attribute influence the appearance of the text. The ! The attribute influence the appearance of the text. The
! following values are used: ! following values are used:
! @image orm_en1-26.gif
!*/ !*/
Object TextAttribute $Intern 1 Object TextAttribute $Intern 1
Body SysBody Body SysBody
...@@ -34,6 +38,7 @@ SObject pwrb:Class ...@@ -34,6 +38,7 @@ SObject pwrb:Class
!/** !/**
! Specifies if the text is to be surrounded by a some ! Specifies if the text is to be surrounded by a some
! kind of frame. ! kind of frame.
! @image orm_en1-27.gif
!*/ !*/
Object FrameAttribute $Intern 2 Object FrameAttribute $Intern 2
Body SysBody Body SysBody
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_logic.h ! @Code rt_plc_macro_logic.h
! User programmable object in the C programming language. ! User programmable object in the C programming language.
! @image orm_carithm_fo.gif
! !
! The code is edited by means of the Attribute Editor at ! The code is edited by means of the Attribute Editor at
! the object's Code attribute. ! the object's Code attribute.
...@@ -21,13 +22,21 @@ ...@@ -21,13 +22,21 @@
! Attribute Editor, or by the logical operator '!' in the ! Attribute Editor, or by the logical operator '!' in the
! Code attribute. ! Code attribute.
! !
! Hints ! Example
!
! This application starts to declare a variable 'r1'. The r1 is
! assigned the sum of A1 and A2. As A2 is left open it will be
! given a value internally. If r1 is greater then 2.7 OA1 will
! be increased by one, otherwise cleard.
! @image orm_en1-30.gif
!
! Hints
! !
! The symbol of the CArithm accommodates to the Code ! The symbol of the CArithm accommodates to the Code
! attribute. To avoid very wide CArithm objects finish ! attribute. To avoid very wide CArithm objects finish
! statements with return. ! statements with return.
! !
! See Also ! See Also
! AArithm, DArithm. ! AArithm, DArithm.
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
......
...@@ -13,6 +13,12 @@ ...@@ -13,6 +13,12 @@
! type of physical Ai-card. The conversion from signal ! type of physical Ai-card. The conversion from signal
! value to actual value is done by polynomials. ! value to actual value is done by polynomials.
! !
! Figure below shows the steps in Ai-signal conversion and
! attributes of interest. The internal filtering concerns local
! Ai signals, i.e remote Ai-signals are not affected.
! @image orm_en1-31.gif
! Quantities of Importance for Handling Ai Signals
!
! SigValue is converted to ActualValue via sensor ! SigValue is converted to ActualValue via sensor
! function s, sensor polynomial p and filter function f ! function s, sensor polynomial p and filter function f
! according to, ! according to,
......
...@@ -15,29 +15,29 @@ ...@@ -15,29 +15,29 @@
! !
! SigValue is converted to ActualValue via sensor ! SigValue is converted to ActualValue via sensor
! function s, table t and filter function f according to, ! function s, table t and filter function f according to,
! ActualValue = f ( t( s(SigValue) ) ) , where !
! the choice of ! ActualValue = f ( t( s(SigValue) ) ) , where the choice of
! !
! -- sensor function s, is determined by ! -- sensor function s, is determined by SensorTypeCode
! SensorTypeCode ! -- table t, is determined by SensorPolyType
! -- table t, is determined by SensorPolyType ! -- filter function f, is determined by FilterType in Ai object
! -- filter function f, is determined by !
! FilterType in Ai object
! The table t is defined in one of the following ways: ! The table t is defined in one of the following ways:
! @image orm_en1-32.gif
! !
! - Direct input of NoOfCoordinates pairs of numbers (InValue,O ! - Direct input of NoOfCoordinates pairs of numbers (InValue,O
! arranged in order of increasing InValue. The first ! arranged in order of increasing InValue. The first
! and the last InValue specify the allowed interval of ! and the last InValue specify the allowed interval of
! s(SigValue). ! s(SigValue).
! - By specifying the coefficients PolCoefficients in a ! - By specifying the coefficients PolCoefficients in a
! polynomial of maximum degree 7 and the maximum and ! polynomial of maximum degree 7 and the maximum and
! minimum values of s(SigValue). By a menu procedure, ! minimum values of s(SigValue). By a menu procedure,
! not implemented, the interval between the minimum and ! not implemented, the interval between the minimum and
! maximum values will be divided into 29 equidistant ! maximum values will be divided into 29 equidistant
! intervals, which results in 30 s(SigValue)-values. ! intervals, which results in 30 s(SigValue)-values.
! Thereafter ActualValue of these points is calculated, ! Thereafter ActualValue of these points is calculated,
! and the pairs of numbers (InValue,OutValue) can be ! and the pairs of numbers (InValue,OutValue) can be
! filled-in. ! filled-in.
! !
! In practice, the function t ( s(SigValue) ) will be put ! In practice, the function t ( s(SigValue) ) will be put
! in by means of the menu handling. When the transfer ! in by means of the menu handling. When the transfer
...@@ -48,19 +48,17 @@ ...@@ -48,19 +48,17 @@
! SigValue: ! SigValue:
! !
! If SigValuemin <= s(SigValue) >= SigValuemax , then ! If SigValuemin <= s(SigValue) >= SigValuemax , then
! - the index n is calculated as SigValue s(SigValue) ! - the index n is calculated as SigValue(n) = s(SigValue) < SigValue(n+1)
! < SigValue n ! t( s(SigValue) ) = Intercept(n) + Slope(n)* s(SigValue)
! n+1
! t( s(SigValue) ) = Intercept(n) + Slope(n)  s(igValue)
! otherwise, t( s(SigValue) ) = OutValue for the first ! otherwise, t( s(SigValue) ) = OutValue for the first
! or the last pair of numbers depending on s(SigValue) ! or the last pair of numbers depending on
! < s(SigValuemin) or s(SigValuemax) > s(SigValue ) ! s(SigValue) < s(SigValuemin) or s(SigValuemax) > s(SigValuemax)
! !
! As the menu handling is not implemented yet we manually ! As the menu handling is not implemented yet we manually
! put in, for each NoOfCoordinates, the corresponding ! put in, for each NoOfCoordinates, the corresponding
! pair of numbers (InValue, OutValue ) respectively (Intercept, Slope). ! pair of numbers (InValue, OutValue ) respectively (Intercept, Slope).
! !
! See Also ! See Also
! !
! ChanAi, whose conversion to ActualValue is based on a ! ChanAi, whose conversion to ActualValue is based on a
! polynomial. ! polynomial.
......
...@@ -11,6 +11,13 @@ ...@@ -11,6 +11,13 @@
! @Version 1.0 ! @Version 1.0
! Configures an analog output channel independent of the ! Configures an analog output channel independent of the
! type of physical Ao-card. ! type of physical Ao-card.
!
! Figure below shows the step in Ao-signal conversion. ActualValue
! SigValue and RawValue belong to the Ao object. The card polynomial
! is defined in a card object, the Emerg attributes in a $Node object,
! and the rest in the ChanAo object
! @image orm_en1-33.gif
! Attributes Used in Ao-signal Conversion
! !
! If EmergBreakTrue = TRUE and EmergBreakSelect = 2 then ! If EmergBreakTrue = TRUE and EmergBreakSelect = 2 then
! the output is based on FixedOutValue. Otherwise TestOn ! the output is based on FixedOutValue. Otherwise TestOn
......
...@@ -12,11 +12,17 @@ ...@@ -12,11 +12,17 @@
! Configures a digital input channel independent of the ! Configures a digital input channel independent of the
! type of physical Di-card. ! type of physical Di-card.
! !
! Figure below shows the steps in Di-signal conversion and the
! attributes of interest. The internal filtering concerns local
! Di-signals, i.e. remote Di-signals are not affected.
! @image orm_en1-34.gif
! Attributes Used in Di-signal Conversion
!
! ActualValue and FilterType belongs to Di object. ! ActualValue and FilterType belongs to Di object.
! InvMask1 and ConvMask1 to card object, but InvertOn and ! InvMask1 and ConvMask1 to card object, but InvertOn and
! ConversionOn belongs to this object. ! ConversionOn belongs to this object.
! !
! Hints ! Hints
! !
! ChanDi objects are configured below a suitable Di-card ! ChanDi objects are configured below a suitable Di-card
! object. ! object.
......
...@@ -12,15 +12,18 @@ ...@@ -12,15 +12,18 @@
! Configures a digital output channel independent of the ! Configures a digital output channel independent of the
! type of physical Do-card. ! type of physical Do-card.
! !
! Figure below shows the steps in Do-signal conversion.
! ActualValue belongs to the Do object. The shadowed ! ActualValue belongs to the Do object. The shadowed
! attributes are defined in a card object, the Emerg-attribut ! attributes are defined in a card object, the Emerg-attribut
! in a $Node object, and the rest in the ChanDo object. ! in a $Node object, and the rest in the ChanDo object.
! @image orm_en1-35.gif
! Attributes Used in Do-signal Conversion
! !
! If EmergBreakTrue = TRUE and EmergBreakSelect = 2 then ! If EmergBreakTrue = TRUE and EmergBreakSelect = 2 then
! the output is based on FixedOutValue. Otherwise TestOn ! the output is based on FixedOutValue. Otherwise TestOn
! will settles which attribute the output is based on. ! will settles which attribute the output is based on.
! !
! Hints ! Hints
! !
! ChanDo objects are configured below a suitable Do-card ! ChanDo objects are configured below a suitable Do-card
! object. ! object.
......
...@@ -12,17 +12,19 @@ ...@@ -12,17 +12,19 @@
! @Code rt_plc_arithm.c ! @Code rt_plc_arithm.c
! Compares an analog value ( signal or parameter) to a high ! Compares an analog value ( signal or parameter) to a high
! limit. ! limit.
! @image orm_en1-36.gif
! !
! Both the input signal and the limit can be either ! Both the input signal and the limit can be either
! constants, defined by the Attribute Editor, or ordinary ! constants, defined by the Attribute Editor, or ordinary
! analog signals. ! analog signals.
! @image orm_en1-37.gif
! The output is TRUE when the input signal is greater ! The output is TRUE when the input signal is greater
! than the high limit i.e. Lim. The hysteresis is taken ! than the high limit i.e. Lim. The hysteresis is taken
! into account when the output signal is to be FALSE. The ! into account when the output signal is to be FALSE. The
! output becomes FALSE as soon as the input becomes less ! output becomes FALSE as soon as the input becomes less
! than or equal to the high limit minus the hysteresis. ! than or equal to the high limit minus the hysteresis.
! !
! See Also ! See Also
! !
! Compl. ! Compl.
!*/ !*/
......
...@@ -10,12 +10,13 @@ ...@@ -10,12 +10,13 @@
!/** !/**
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_arithm.c ! @Code rt_plc_arithm.c
! Compares an analog value ( signal or parameter) with a ! Compares an analog value (signal or parameter) with a
! low limit. ! low limit.
! ! @image orm_en1-38.gif
! Both the input signal and the limit can be either ! Both the input signal and the limit can be either
! constants, defined by the Attribute Editor, or ordinary ! constants, defined by the Attribute Editor, or ordinary
! analog signals. ! analog signals.
! @image orm_en1-39.gif
! The output is TRUE when the input signal is less than ! The output is TRUE when the input signal is less than
! the low limit, i.e. Lim. ! the low limit, i.e. Lim.
! !
...@@ -24,7 +25,7 @@ ...@@ -24,7 +25,7 @@
! as the input becomes greater than or equal to the low ! as the input becomes greater than or equal to the low
! limit plus the hysteresis. ! limit plus the hysteresis.
! !
! See Also ! See Also
! !
! Comph. ! Comph.
!*/ !*/
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_io.c ! @Code rt_plc_io.c
! Pulse counter. ! Pulse counter.
! @image orm_count_fo.gif
! !
! The counter can be increased, decreased, cleared or set ! The counter can be increased, decreased, cleared or set
! equal to a present value. ! equal to a present value.
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Conditional Storage Analog input. ! Conditional Storage Analog input.
! @image orm_cstoai_fo.gif
! !
! Conditional storage of an analog value on a specified ! Conditional storage of an analog value on a specified
! local Ai-signal (= Ai object). ! local Ai-signal (= Ai object).
......
...@@ -11,12 +11,14 @@ ...@@ -11,12 +11,14 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Conditional Storage Analog output. ! Conditional Storage Analog output.
! @image orm_cstoao_fo.gif
! !
! Conditional storage of an analog value on a specified ! Conditional storage of an analog value on a specified
! local Ao-signal (= Ao object). ! local Ao-signal (= Ao object).
! !
! Conditional is aimed at the con-input, which is ! Conditional is aimed at the con-input, which is
! supposed to be connected. ! supposed to be connected.
! @image orm_en1-43.gif
! The conditional input signal can be inverted by means ! The conditional input signal can be inverted by means
! of the Attribute Editor. ! of the Attribute Editor.
! !
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Conditional Storage Analog parameter. ! Conditional Storage Analog parameter.
! @image orm_cstoap_fo.gif
! !
! Conditional storage of an analog value ( parameter, ! Conditional storage of an analog value ( parameter,
! input, or output signal) on a specified parameter in a ! input, or output signal) on a specified parameter in a
...@@ -29,9 +30,11 @@ ...@@ -29,9 +30,11 @@
! It is not allowed, by means of a function in C or PLC ! It is not allowed, by means of a function in C or PLC
! programs, to write in any of the inputs. ! programs, to write in any of the inputs.
! !
! Example ! Example
!
! At Gain-Scheduling it would be possible to use CStoAp ! At Gain-Scheduling it would be possible to use CStoAp
! objects with the analog inputs left open; see below. ! objects with the analog inputs left open; see below.
! @image orm_en1-45.gif
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object CStoAp $ClassDef 76 Object CStoAp $ClassDef 76
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Conditional Storage Analog value. ! Conditional Storage Analog value.
! @image orm_cstoav_fo.gif
! !
! Conditional storage of an analog value on a specified ! Conditional storage of an analog value on a specified
! local Av-signal (= Av object). ! local Av-signal (= Av object).
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Conditional Storage Integer parameter. ! Conditional Storage Integer parameter.
! @image orm_cstoip_fo.gif
! !
! Conditional storage of an analog value ( parameter, ! Conditional storage of an analog value ( parameter,
! input, or output signal of the type pwr_tFloat32) on a ! input, or output signal of the type pwr_tFloat32) on a
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_string.h ! @Code rt_plc_macro_string.h
! Conditional Storage of string attribute. ! Conditional Storage of string attribute.
! ! @image orm_cstosp_fo.gif
!
! Conditional storage of an string value ( parameter, ! Conditional storage of an string value ( parameter,
! input, or output signal) on a specified attribute in a ! input, or output signal) on a specified attribute in a
! local object. ! local object.
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_string.h ! @Code rt_plc_macro_string.h
! Conditional storage of string value. ! Conditional storage of string value.
! ! @image orm_cstosv_fo.gif
!
! Conditional storage of a string value on a specified ! Conditional storage of a string value on a specified
! local Sv object. ! local Sv object.
! Conditional is aimed at the con-input, which is ! Conditional is aimed at the con-input, which is
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
! @Code rt_plc_macro_grafcet.h ! @Code rt_plc_macro_grafcet.h
! Conditional execution of objects located in a ! Conditional execution of objects located in a
! Sub-window. ! Sub-window.
! @image orm_csub_fo.gif
! !
! The code in the sub-window is, ! The code in the sub-window is,
! executed if, and only if, the logical input signal is ! executed if, and only if, the logical input signal is
......
...@@ -11,9 +11,11 @@ ...@@ -11,9 +11,11 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_arithm.c ! @Code rt_plc_arithm.c
! Interpolates in a table. ! Interpolates in a table.
! @image orm_curve_fo.gif
! !
! The table which is realized in a Table object defines ! The table which is realized in a Table object defines
! a function curve. ! a function curve.
! @image orm_en1-50.gif
! If the input signal is outside the range of the table ! If the input signal is outside the range of the table
! the first/last table value is chosen as the function ! the first/last table value is chosen as the function
! value; see above. ! value; see above.
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_logic.h ! @Code rt_plc_macro_logic.h
! User-defined logical expression. ! User-defined logical expression.
! @image orm_darithm_fo.gif
! !
! Optional programmable logical expression in the C ! Optional programmable logical expression in the C
! programming language. The expression is edited by means ! programming language. The expression is edited by means
...@@ -39,13 +40,21 @@ ...@@ -39,13 +40,21 @@
! easier to get access from the object display. Unused ! easier to get access from the object display. Unused
! inputs make compilation errors. ! inputs make compilation errors.
! !
! Example ! Example
! !
! 1 Maximum one of d1 - d5 is TRUE or d6 ! 1 Combinational circuit. In the following example '&&' means
! logical and, '||' means logical or and '!' means not.
!
! Expression: (d1 && d2 || !d3) && d4
! @image orm_en1-52.gif
! is equivalent with
! @image orm_en1-53.gif
!
! 2 Maximum one of d1 - d5 is TRUE or d6
! !
! Expression: ((d1 + d2 + d3 + d4 + d5) < 2) || d6 ! Expression: ((d1 + d2 + d3 + d4 + d5) < 2) || d6
! !
! 2 Comparison. ! 3 Comparison.
! !
! Expression: (A1 + 3.5 * A2) < A3 ! Expression: (A1 + 3.5 * A2) < A3
! !
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
! @Version 1.0 ! @Version 1.0
! @Summary User programmable object with data inputs and outputs. ! @Summary User programmable object with data inputs and outputs.
! User progammable object with data inputs and outputs. ! User progammable object with data inputs and outputs.
! @image orm_dataarithm_fo.gif
! !
! The object contains ! The object contains
! - four data inputs ! - four data inputs
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
! @Summary Expands the number of data attributes that can be handled in a DataArithm. ! @Summary Expands the number of data attributes that can be handled in a DataArithm.
! The DataCollect object expands the number of data attribues that ! The DataCollect object expands the number of data attribues that
! can be handled in a DataArithm object. ! can be handled in a DataArithm object.
! ! @image orm_datacollect_fo.gif
! The DataCollect has 24 data inputs, which values are stored in an array. ! The DataCollect has 24 data inputs, which values are stored in an array.
! By connecting the output of the DataCollect object to a Data input of a ! By connecting the output of the DataCollect object to a Data input of a
! DataArithm object, it is possible to handle the array in the code of the ! DataArithm object, it is possible to handle the array in the code of the
......
...@@ -167,6 +167,7 @@ SObject pwrb:Class ...@@ -167,6 +167,7 @@ SObject pwrb:Class
EndBody EndBody
EndObject EndObject
!/** !/**
! @Summary Specifies the selected filter.
! The internal filter function concerns only local ! The internal filter function concerns only local
! Di-signals. ! Di-signals.
! !
...@@ -175,6 +176,20 @@ SObject pwrb:Class ...@@ -175,6 +176,20 @@ SObject pwrb:Class
! !
! 0 -- No filtering. ! 0 -- No filtering.
! 1 -- Set and reset delay. ! 1 -- Set and reset delay.
!
! Set operation is only possible when the 'output' of the filter is
! FALSE. The set delay is counted from the latest edge on the
! 'input'. When the time FilterAttribute[0] has elapsed becomes
! 'output' = 'input'.
! @image orm_en1-54.gif
! Reset operation is only possible when the 'output' of the filter
! is TRUE. The set delay is counted from the latest trailing edget on
! the 'input'. When the time FilerAttribute[1] has elapsed becomes
! 'output' = 'input'.
!
! 'input' denotes the quantity when the sampled signal has passed
! the inverter step, and output denotes the value after the filter
! step (see ChanDi figure Attributes Used in Di-signal Conversion).
!*/ !*/
Object FilterType $Attribute 10 Object FilterType $Attribute 10
Body SysBody Body SysBody
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_io.c ! @Code rt_plc_io.c
! Digital input Binary Coded Decimal. ! Digital input Binary Coded Decimal.
! @image orm_en1-55.gif
! !
! Represents four binary coded decimal (BCD) digits (= 16 ! Represents four binary coded decimal (BCD) digits (= 16
! digital signals) on a decimal floating point number. ! digital signals) on a decimal floating point number.
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
! @Version 1.0 ! @Version 1.0
! Configures in the working area of the PLC Editor an ! Configures in the working area of the PLC Editor an
! area in A-format. ! area in A-format.
! @image orm_en1-56.gif
! !
! By at the time of configuration of a PLC program, ! By at the time of configuration of a PLC program,
! divide the working surface in Document objects and ! divide the working surface in Document objects and
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
! @Summary Expands the number of Boolean attributes that can be handled in a DataArithm. ! @Summary Expands the number of Boolean attributes that can be handled in a DataArithm.
! The DpCollect object expands the number of Boolean attribues that ! The DpCollect object expands the number of Boolean attribues that
! can be handled in a DataArithm object. ! can be handled in a DataArithm object.
! ! @image orm_dpcollect_fo.gif
! The DpCollect has 24 digital inputs, which values are stored in an array. ! The DpCollect has 24 digital inputs, which values are stored in an array.
! By connecting the output of the DpCollect object to a Data input of a ! By connecting the output of the DpCollect object to a Data input of a
! DataArithm object, it is possible to handle the array in the code of the ! DataArithm object, it is possible to handle the array in the code of the
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
! @Summary Expands the number of boolean outputs that can be handled in a DataArithm. ! @Summary Expands the number of boolean outputs that can be handled in a DataArithm.
! The DpDistribute expands the number of boolean outputs that can be ! The DpDistribute expands the number of boolean outputs that can be
! handled in a DataArithm object. ! handled in a DataArithm object.
! ! @image orm_dpdistribute_fo.gif
! The DpDistribute has 24 digital outputs, which values can be set from ! The DpDistribute has 24 digital outputs, which values can be set from
! an array of Boolean declared in the code of a DataArithm. By connecting ! an array of Boolean declared in the code of a DataArithm. By connecting
! the data input of the DpDistribute to an data output of a DataArithm, ! the data input of the DpDistribute to an data output of a DataArithm,
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
! @Code rt_plc_drive.c ! @Code rt_plc_drive.c
! START/ STOP motor control with supervision of contactor ! START/ STOP motor control with supervision of contactor
! response and motion guard. ! response and motion guard.
! @image orm_en1-58.gif
! Three different types of interlockings: ! Three different types of interlockings:
! · safety interlocking SafeStop ! · safety interlocking SafeStop
! · production interlocking ProdStop ! · production interlocking ProdStop
...@@ -27,6 +28,7 @@ ...@@ -27,6 +28,7 @@
! One of three operating modes, LOCAL / MANUAL / AUTO, is ! One of three operating modes, LOCAL / MANUAL / AUTO, is
! selected by means of the input signal Local and the ! selected by means of the input signal Local and the
! output signal ManMode in the following way: ! output signal ManMode in the following way:
! @image orm_en1-59.gif
! !
! LOCAL ! LOCAL
! · Used at operation from for example an outer ! · Used at operation from for example an outer
...@@ -40,6 +42,7 @@ ...@@ -40,6 +42,7 @@
! · LocDrive has a spring back push button ! · LocDrive has a spring back push button
! function with an opening stop function. STOP ! function with an opening stop function. STOP
! is also done when Local is reset. ! is also done when Local is reset.
! @image orm_en1-60.gif
! !
! MANUAL/AUTO ! MANUAL/AUTO
! · Both production and safety interlockings are ! · Both production and safety interlockings are
...@@ -62,6 +65,53 @@ ...@@ -62,6 +65,53 @@
! instead of the missed input signal; i.e. it is not the ! instead of the missed input signal; i.e. it is not the
! value of ProdTim or SpeedTim itself that determines if ! value of ProdTim or SpeedTim itself that determines if
! these are concerned or not. ! these are concerned or not.
!
! Examples
!
! Worm Conveyer with Motion Guard
!
! Assumptions:
!
! - Switching equipment to local drive at the motor etc.
! - Signals from emergency stop ( nödstopp in Swedish) and thermal
! tripping (termisk utlösning in Swedish) exists.
! - The worm conveyer may not be driven if PUMP1 is off. This pump
! is represented and driven by another Drive object. The PUMP1
! restriction is not valid at driving from the switching equipment.
! - The worm conveyer drives in operational mode AUTO with rotation
! in 5 minutes every half hour or on operator request; WAIT0 has
! TimerTime =25 · 60 seconds and WAIT1 TimerTime = 5 · 60 seconds.
! - Message will be sent at alarms.
! @image orm_en1-61.gif
! Periodical Control of a Contactor
!
! Forward/Backward operation
!
! Driving only in the operational mode AUTO. Forward/backward operation
! is controlled by Dv-signals. Response from the contactor exists, but
! no tachometric relay. The both single drives interlock each other, and
! changes between forward/backward are separated in time by TIMER0
! respectively TIMER1.
! @image orm_en1-62.gif
! Configuration of a Forward/Backward Operation
!
! Two Conveyers
! @image orm_en1-63.gif
!
! The conveyer Trp1 may start only if the conveyer Trp2 is already running
! (=production interlocking). The conveyers use the same thermal tripping
! signal.
! @image orm_en1-64.gif
! Shows the Operational Indicator Used to Control the Order of Starting
!
! The AND-gate to start TRP1 is used to create a leading edge on the start
! signal when TRP2 is running.
!
! Also in the operational mode MANUAL TRP1 is interlocked by TRP2 and TRP2
! by level guards in the container. If a switching equipment to local drive
! was set up thermal tripping is the only interlocking in the operational
! mode LOCAL.
!
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Drive $ClassDef 103 Object Drive $ClassDef 103
......
...@@ -17,11 +17,13 @@ ...@@ -17,11 +17,13 @@
! For every attribute to be plotted there has to be a ! For every attribute to be plotted there has to be a
! data storage object. Attributes in the objects specify ! data storage object. Attributes in the objects specify
! for example the name of the sampled attribute and how ! for example the name of the sampled attribute and how
! often it is to be stored, see figure 3-11. An attribute ! often it is to be stored, see figure below. An attribute
! may be referred to by several different data storage ! may be referred to by several different data storage
! objects, for example to store at different frequencies. ! objects, for example to store at different frequencies.
! ! @image orm_en1-65.gif
! Note! Remember that the sampling rate of physical hardware ! DsFast job with data storage objects
!
! Note! Remember that the sampling rate of physical hardware
! is finite. At present Ai-signals are sampled at 5 Hz ! is finite. At present Ai-signals are sampled at 5 Hz
! and Co-, Di-, Do-, and Dv-signals at the base frequency ! and Co-, Di-, Do-, and Dv-signals at the base frequency
! which is equal to the fastest running PLC program of ! which is equal to the fastest running PLC program of
...@@ -36,8 +38,8 @@ ...@@ -36,8 +38,8 @@
! When all elements in the buffer have got values once in ! When all elements in the buffer have got values once in
! this way, AllDataOK is set. ! this way, AllDataOK is set.
! The Trigged flag can be set by two different events: ! The Trigged flag can be set by two different events:
! 1 !
! manually from for example the fast graph by the ! 1 manually from for example the fast graph by the
! Trigger- button. In this case TrigManTrue is set. ! Trigger- button. In this case TrigManTrue is set.
! 2 via the outer signal named by the TrigName ! 2 via the outer signal named by the TrigName
! attribute. ! attribute.
...@@ -47,6 +49,7 @@ ...@@ -47,6 +49,7 @@
! Trigged flag has been set and stops after that. Test ! Trigged flag has been set and stops after that. Test
! values in the buffer are frozen and the plotting is ! values in the buffer are frozen and the plotting is
! done in the fast graph. ! done in the fast graph.
! @image orm_en1-65.gif
! The sampled attribute has to be a local quantity. So, ! The sampled attribute has to be a local quantity. So,
! DsFast objects have to reside at the same node as the ! DsFast objects have to reside at the same node as the
! sampled attribute in the runtime environment. ! sampled attribute in the runtime environment.
......
...@@ -14,8 +14,9 @@ ...@@ -14,8 +14,9 @@
! In every node where fast graphs should be stored there ! In every node where fast graphs should be stored there
! has to be a DsFast job to search through the local ! has to be a DsFast job to search through the local
! DsFast objects. ! DsFast objects.
! ! @image orm_en1-67.gif
! Hints !
! Hints
! !
! The DsFastConf object is placed below the $Node object. ! The DsFastConf object is placed below the $Node object.
! If a Ds_Fast job is loaded to a node, which has no ! If a Ds_Fast job is loaded to a node, which has no
...@@ -27,6 +28,7 @@ ...@@ -27,6 +28,7 @@
! Appl object and for a VAXELN node either by an Appl ! Appl object and for a VAXELN node either by an Appl
! object or is the dsFast module included in the ! object or is the dsFast module included in the
! EBUILD-file. ! EBUILD-file.
! @image orm_en1-68.gif
! !
! See Also ! See Also
! DsFast ! DsFast
......
...@@ -20,6 +20,8 @@ ...@@ -20,6 +20,8 @@
! to be stored, see figure 3-13. A measurant may be used ! to be stored, see figure 3-13. A measurant may be used
! by several different data storage objects, for example ! by several different data storage objects, for example
! to store at different frequencies. ! to store at different frequencies.
! @image orm_en1-69.gif
! DsTrend Job with Data Storage Objects
! !
! Note! Remember that the sampling rate of physical hardware ! Note! Remember that the sampling rate of physical hardware
! is finite. At present Ai-signals are sampled at 5 Hz, ! is finite. At present Ai-signals are sampled at 5 Hz,
...@@ -52,12 +54,14 @@ ...@@ -52,12 +54,14 @@
! - pwr_tInt8, pwr_tInt16, pwr_tInt32 ! - pwr_tInt8, pwr_tInt16, pwr_tInt32
! - pwr_tUInt8, pwr_tUInt16, pwr_tUInt32 ! - pwr_tUInt8, pwr_tUInt16, pwr_tUInt32
! !
! Hints ! Hints
! !
! If a signal is associated with an object by the type ! If a signal is associated with an object by the type
! DsTrend, DsFast, or DsHist this relation may be marked ! DsTrend, DsFast, or DsHist this relation may be marked
! by putting the object direct below the current signal ! by putting the object direct below the current signal
! object. ! object.
! @image orm_en1-70.gif
! Configuration of a DsTrend Object
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object DsTrend $ClassDef 108 Object DsTrend $ClassDef 108
......
...@@ -14,8 +14,11 @@ ...@@ -14,8 +14,11 @@
! In every node where trend graphs shall be stored there ! In every node where trend graphs shall be stored there
! is a need for a DsTrend job which is searching through ! is a need for a DsTrend job which is searching through
! the local DsTrend objects. ! the local DsTrend objects.
! @image orm_en1-71.gif
! DsTrend Job with Matching Objects
! !
! Hints ! Hints
!
! Because a DsTrend job default is loaded to each OpenVMS ! Because a DsTrend job default is loaded to each OpenVMS
! node it is suitable to configure DsTrendConf object on ! node it is suitable to configure DsTrendConf object on
! this nodes. The DsTrendConf objects are placed below ! this nodes. The DsTrendConf objects are placed below
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_sup.h ! @Code rt_plc_macro_sup.h
! Digital Supervisory. ! Digital Supervisory.
! ! @image orm_dsup_fo.gif
!
! Supervises a binary quantity in an arbitrary object in ! Supervises a binary quantity in an arbitrary object in
! regard to alarm position. CtrlPosition specifies if ! regard to alarm position. CtrlPosition specifies if
! true or false constitutes the alarm position. The alarm ! true or false constitutes the alarm position. The alarm
...@@ -19,6 +20,7 @@ ...@@ -19,6 +20,7 @@
! !
! The DSup object reacts in two ways when the quantity is ! The DSup object reacts in two ways when the quantity is
! in the alarm position: ! in the alarm position:
!
! 1 the act-output is unconditionally set to indicate ! 1 the act-output is unconditionally set to indicate
! alarm state. ! alarm state.
! !
...@@ -32,13 +34,14 @@ ...@@ -32,13 +34,14 @@
! activities. ! activities.
! Different types of activities exist; (see EventType ) ! Different types of activities exist; (see EventType )
! !
! · ALARM The message remains as long as the alarm ! - ALARM The message remains as long as the alarm
! position exists and no acknowledgement is ! position exists and no acknowledgement is
! !
! · INFO If the message demands an acknowledgement ! - INFO If the message demands an acknowledgement
! this is sent to the info part of the alarm ! this is sent to the info part of the alarm
! window from, where it can be acknowledged, ! window from, where it can be acknowledged,
! otherwise only to the event list. ! otherwise only to the event list.
!
! An acknowledgeable info-message disappears ! An acknowledgeable info-message disappears
! from the info part of the alarm window as ! from the info part of the alarm window as
! soon as it has been acknowledged without ! soon as it has been acknowledged without
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_string.h ! @Code rt_plc_macro_string.h
! Convert digital value to string. ! Convert digital value to string.
! ! @image orm_dtostr_fo.gif
!
! The DtoStr object converts the value of the integer input to ! The DtoStr object converts the value of the integer input to
! at string stored in ActVal. ! at string stored in ActVal.
! !
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_logic.h ! @Code rt_plc_macro_logic.h
! Edge detector. ! Edge detector.
! @image orm_edge_fo.gif
! !
! Detecting on a leading edge of a pulse. ! Detecting on a leading edge of a pulse.
! !
......
...@@ -24,12 +24,19 @@ ...@@ -24,12 +24,19 @@
! objects are used. ! objects are used.
! The object exists only in the development environment. ! The object exists only in the development environment.
! !
! Hints ! Hints
! !
! Assume a PROVIEW/R system with process graphics, from ! Assume a PROVIEW/R system with process graphics, from
! which attributes in rtdb are manipulated. The designer ! which attributes in rtdb are manipulated. The designer
! wants to make this manipulations visible in cross- and ! wants to make this manipulations visible in cross- and
! reference lists. ! reference lists. Figure below shows one solution.
! @image orm_en1-74.gif
! Configuration of ExternRef Objects
!
! The ExternRef objects of the process graphics are here
! collected below an object named OperatorCom. The ExternRef
! objects of certain process graphics have then been collected
! below its own $PlantHier object.
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object ExternRef $ClassDef 116 Object ExternRef $ClassDef 116
......
...@@ -11,13 +11,23 @@ ...@@ -11,13 +11,23 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_arithm.c ! @Code rt_plc_arithm.c
! First Order Lag Filter. ! First Order Lag Filter.
! Symbol ! @image orm_filter_fo.gif
!
! The input signal gets an exponential smoothing. ! The input signal gets an exponential smoothing.
! VAL = a * In+ (1 - a) * X = X + a (In - X) , where ! VAL = a * In+ (1 - a) * X = X + a (In - X) , where
! X = FeedB, if FeedB is connected, ActValt - 1, otherwise ! X = FeedB, if FeedB is connected, ActValt - 1, otherwise
! !
! a = ScanTime / FiltCon and 0 < a < 1.0. If a >= 1.0 ! a = ScanTime / FiltCon and 0 < a < 1.0. If a >= 1.0
! no filtering is done. ! no filtering is done.
!
! An external signal may also be used as feedback; e.g.
! @image orm_en1-77.gif
!
! Example
!
! If a (= ScanTime / FiltCon ) is small, 0.1 - 0.2, the output gets
! a character of a slowly moving average.
! @image orm_en1-78.gif
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Filter $ClassDef 117 Object Filter $ClassDef 117
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
! !
! The only difference between Frame, Head, Text, and ! The only difference between Frame, Head, Text, and
! Title is the default values of the attributes. ! Title is the default values of the attributes.
! ! @image orm_en1-79.gif
! They are used in Document objects where, for instance, ! They are used in Document objects where, for instance,
! Title specifies what the configuration is doing, i.e. ! Title specifies what the configuration is doing, i.e.
! the function. ! the function.
...@@ -34,6 +34,7 @@ SObject pwrb:Class ...@@ -34,6 +34,7 @@ SObject pwrb:Class
!/** !/**
! Specifies if the text is to be surrounded by a some ! Specifies if the text is to be surrounded by a some
! kind of frame. ! kind of frame.
! @image orm_en1-81.gif
!*/ !*/
Object FrameAttribute $Intern 1 Object FrameAttribute $Intern 1
Body SysBody Body SysBody
...@@ -72,6 +73,7 @@ SObject pwrb:Class ...@@ -72,6 +73,7 @@ SObject pwrb:Class
!/** !/**
! The attribute influence the appearance of the text. The ! The attribute influence the appearance of the text. The
! following values are used: 0, 1, 2, 3. ! following values are used: 0, 1, 2, 3.
! @image orm_en1-80.gif
!*/ !*/
Object TextAttribute $Intern 5 Object TextAttribute $Intern 5
Body SysBody Body SysBody
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
! when a connection is created from an analog input. The object will ! when a connection is created from an analog input. The object will
! be transformed to its final appearence when it is connected to a ! be transformed to its final appearence when it is connected to a
! signal or attribute. ! signal or attribute.
! @image orm_getageneric_fo.gif
!*/ !*/
! !
! !
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
!/** !/**
! @Version 1.0 ! @Version 1.0
! Get Analog input. ! Get Analog input.
! @image orm_getai_fo.gif
! !
! Fetches the engineering value for a specified Ai-signal ! Fetches the engineering value for a specified Ai-signal
! from I/O-copied area. See PROVIEW/R Designer's Guide. ! from I/O-copied area. See PROVIEW/R Designer's Guide.
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
!/** !/**
! @Version 1.0 ! @Version 1.0
! Get Analog output. ! Get Analog output.
! @image orm_getao_fo.gif
! !
! Fetches the engineering value for a specified Ao-signal ! Fetches the engineering value for a specified Ao-signal
! from I/O-copied area. See PROVIEW/R Designer's Guide. ! from I/O-copied area. See PROVIEW/R Designer's Guide.
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
!/** !/**
! @Version 1.0 ! @Version 1.0
! Get Analog parameter. ! Get Analog parameter.
! @image orm_getap_fo.gif
! !
! Fetches the value of an analog quantity (= pwr_tFloat32 ! Fetches the value of an analog quantity (= pwr_tFloat32
! parameter, in- or output signal) in an arbitrary ! parameter, in- or output signal) in an arbitrary
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
!/** !/**
! @Version 1.0 ! @Version 1.0
! Get Analog value. ! Get Analog value.
! @image orm_getav_fo.gif
! !
! Fetches the engineering value for a specified Av-signal ! Fetches the engineering value for a specified Av-signal
! from I/O-copied area. See PROVIEW/R Designer's Guide. ! from I/O-copied area. See PROVIEW/R Designer's Guide.
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
! @Version 1.0 ! @Version 1.0
! @Summary Get a data object. ! @Summary Get a data object.
! Fetches a reference to a data object. ! Fetches a reference to a data object.
! @image orm_getdata_fo.gif
! The reference is transferred to data inputs of for example ! The reference is transferred to data inputs of for example
! DataArithm-objects by connecting the output of the GetData ! DataArithm-objects by connecting the output of the GetData
! in the plc editor. ! in the plc editor.
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
! when a connection is created from a digital input. The object will ! when a connection is created from a digital input. The object will
! be transformed to its final appearence when it is connected to a ! be transformed to its final appearence when it is connected to a
! signal or attribute. ! signal or attribute.
! @image orm_getdgeneric_fo.gif
!*/ !*/
! !
SObject pwrb:Class SObject pwrb:Class
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
!/** !/**
! @Version 1.0 ! @Version 1.0
! Get Digital input. ! Get Digital input.
! ! @image orm_getdi_fo.gif
!
! Fetches the engineering value for a specified Di-signal ! Fetches the engineering value for a specified Di-signal
! from I/O-copied area. See PROVIEW/R Designer's Guide. ! from I/O-copied area. See PROVIEW/R Designer's Guide.
! The complete name of the Di-signal has to be supplied; ! The complete name of the Di-signal has to be supplied;
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
!/** !/**
! @Version 1.0 ! @Version 1.0
! Get Digital output. ! Get Digital output.
! ! @image orm_getdo_fo.gif
!
! Fetches the engineering value for a specified Do object ! Fetches the engineering value for a specified Do object
! from I/O-copied area. See PROVIEW/R Designer's Guide. ! from I/O-copied area. See PROVIEW/R Designer's Guide.
! The complete name of the Do-signal has to be supplied; ! The complete name of the Do-signal has to be supplied;
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
!/** !/**
! @Version 1.0 ! @Version 1.0
! Get Digital parameter. ! Get Digital parameter.
! ! @image orm_getdp_fo.gif
!
! Fetches the value of a digital quantity ( e.g. output ! Fetches the value of a digital quantity ( e.g. output
! signal from an object or internal digital variable) in ! signal from an object or internal digital variable) in
! arbitrary object. ! arbitrary object.
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
!/** !/**
! @Version 1.0 ! @Version 1.0
! Get Digital value. ! Get Digital value.
! ! @image orm_getdv_fo.gif
!
! Fetches the engineering value for specified Dv-signal ! Fetches the engineering value for specified Dv-signal
! from I/O-copied area. See PROVIEW/R Designer's Guide. ! from I/O-copied area. See PROVIEW/R Designer's Guide.
! !
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Get Integer parameter. ! Get Integer parameter.
! ! @image orm_getip_fo.gif
!
! Fetches the value of a 32-, 16- or 8-bits integer ! Fetches the value of a 32-, 16- or 8-bits integer
! parameter in arbitrary object. ! parameter in arbitrary object.
! !
...@@ -20,6 +21,17 @@ ...@@ -20,6 +21,17 @@
! is a pure address reference, ! is a pure address reference,
! contains no relevant information (=data) in rtdb, ! contains no relevant information (=data) in rtdb,
! is without executable code. ! is without executable code.
!
! Example
!
! In the example below the value of the integer parameter, AccMod is stored:
!
! - unconditionally by STOIP
! _ conditionally by CSTOIP
!
! The value is also unconditionally stored as a pwr_tFloat32 on an attribute
! pwr_float32 in the object named TIC2M
! @image orm_en1-93.gif
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object GetIp $ClassDef 128 Object GetIp $ClassDef 128
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Get Pulse input. ! Get Pulse input.
! ! @image orm_getpi_fo.gif
!
! Fetches the I/O-copied count value from the pulse ! Fetches the I/O-copied count value from the pulse
! counter card, i.e. RawValue from a Co object. ! counter card, i.e. RawValue from a Co object.
! We may use either the RawValue itself (which is a 16 or ! We may use either the RawValue itself (which is a 16 or
...@@ -21,6 +22,7 @@ ...@@ -21,6 +22,7 @@
! !
! The name of the object is shown in the button of the ! The name of the object is shown in the button of the
! GetPi-symbol. ! GetPi-symbol.
! @image orm_en1-95.gif
! The GetPi object ! The GetPi object
! is a pure address reference, ! is a pure address reference,
! contains no relevant information (=data) in rtdb, ! contains no relevant information (=data) in rtdb,
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
! when a connection is created from a string input. The object will ! when a connection is created from a string input. The object will
! be transformed to its final appearence when it is connected to a ! be transformed to its final appearence when it is connected to a
! string value or attribute. ! string value or attribute.
! @image orm_getsgeneric_fo.gif
!*/ !*/
! !
! !
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
!/** !/**
! @Version 1.0 ! @Version 1.0
! Get String parameter. ! Get String parameter.
! ! @image orm_getsp_fo.gif
!
! Fetches the value of a string attribute. ! Fetches the value of a string attribute.
! The attribute can be an in- or output signal in an arbitrary ! The attribute can be an in- or output signal in an arbitrary
! object. The size of the attribute has to be 80 bytes or less. ! object. The size of the attribute has to be 80 bytes or less.
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
!/** !/**
! @Version 1.0 ! @Version 1.0
! Get String value. ! Get String value.
! ! @image orm_getsv_fo.gif
!
! Fetches the value for specified Sv object. ! Fetches the value for specified Sv object.
! !
! The complete name of the Sv-signal has to be supplied; ! The complete name of the Sv-signal has to be supplied;
......
...@@ -85,6 +85,7 @@ SObject pwrb:Class ...@@ -85,6 +85,7 @@ SObject pwrb:Class
! This means that the latest position of the window will ! This means that the latest position of the window will
! be used when the window is displayed next time. ! be used when the window is displayed next time.
! -1, -1 specifies a default position. ! -1, -1 specifies a default position.
! @image orm_en1-96.gif
!*/ !*/
Object X $Attribute 5 Object X $Attribute 5
Body SysBody Body SysBody
...@@ -122,6 +123,7 @@ SObject pwrb:Class ...@@ -122,6 +123,7 @@ SObject pwrb:Class
! Coordinates) which portion of the Model will be ! Coordinates) which portion of the Model will be
! displayed on a monitor. ( A Model are collections of ! displayed on a monitor. ( A Model are collections of
! lines, circles etc.) ! lines, circles etc.)
! @image orm_en1-97.gif
!*/ !*/
Object GmsX1 $Attribute 8 Object GmsX1 $Attribute 8
Body SysBody Body SysBody
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
! @Code rt_plc_io.c ! @Code rt_plc_io.c
! Converts a 16-bits Gray code value into its decimal ! Converts a 16-bits Gray code value into its decimal
! equivalent. ! equivalent.
! @image orm_gray_fo.gif
! !
! The Gray code has the property that a change of the ! The Gray code has the property that a change of the
! output signal one unit can always be accomplished by ! output signal one unit can always be accomplished by
......
...@@ -16,12 +16,20 @@ ...@@ -16,12 +16,20 @@
! !
! The only difference between Frame, Head, Text, and ! The only difference between Frame, Head, Text, and
! Title is the default values of the attributes. ! Title is the default values of the attributes.
! ! @image orm_en1-79.gif
!
! They are used in Document objects where, for instance, ! They are used in Document objects where, for instance,
! Title specifies what the configuration is doing, i.e. ! Title specifies what the configuration is doing, i.e.
! the function. ! the function.
! Sub-functions are named by Head objects. ! Sub-functions are named by Head objects.
! Frame and Text are used to information of details. ! Frame and Text are used to information of details.
! Hints
!
! A well-done PLC program ought to contain not only objects necessary
! to the computer execution but also objects whose purpose are to make
! the program more easy to understand to later readers. See figure below.
! @image orm_en1-82.gif
! Title, Head and Text Objects Make the Program Easy to Read.
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Head $ClassDef 134 Object Head $ClassDef 134
...@@ -44,6 +52,7 @@ SObject pwrb:Class ...@@ -44,6 +52,7 @@ SObject pwrb:Class
!/** !/**
! The attribute influence the appearance of the text. The ! The attribute influence the appearance of the text. The
! following values are used: 0, 1, 2, 3. ! following values are used: 0, 1, 2, 3.
! @image orm_en1-80.gif
!*/ !*/
Object TextAttribute $Intern 2 Object TextAttribute $Intern 2
Body SysBody Body SysBody
...@@ -53,6 +62,7 @@ SObject pwrb:Class ...@@ -53,6 +62,7 @@ SObject pwrb:Class
!/** !/**
! Specifies if the text is to be surrounded by a some ! Specifies if the text is to be surrounded by a some
! kind of frame. ! kind of frame.
! @image orm_en1-81.gif
!*/ !*/
Object FrameAttribute $Intern 3 Object FrameAttribute $Intern 3
Body SysBody Body SysBody
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
! / close / 0 but also with the meaning of up / down / 0 ! / close / 0 but also with the meaning of up / down / 0
! or right / left / 0 or increase / decrease / 0 etc. The ! or right / left / 0 or increase / decrease / 0 etc. The
! outputs are time-proportional to the input. ! outputs are time-proportional to the input.
! @image orm_en1-100.gif
! !
! The input signal OutChange is regarded as a control ! The input signal OutChange is regarded as a control
! error. This error is transformed into a time by ! error. This error is transformed into a time by
...@@ -38,6 +39,8 @@ ...@@ -38,6 +39,8 @@
! value of Acc does not exceed the dead zone during a ! value of Acc does not exceed the dead zone during a
! time specified by MaxTim; the integration is turned off ! time specified by MaxTim; the integration is turned off
! at small control errors. ! at small control errors.
! @image orm_en1-101.gif
! Output Signals from an Inc3P
! !
! So-called timer control, also used by Pos3P objects on ! So-called timer control, also used by Pos3P objects on
! page 3-287, is discussed in the example below. ! page 3-287, is discussed in the example below.
...@@ -46,6 +49,21 @@ ...@@ -46,6 +49,21 @@
! DoOpen/DoClose. The outputs and the signals can be set ! DoOpen/DoClose. The outputs and the signals can be set
! by a frequency determined by the PlcPgm object. But ! by a frequency determined by the PlcPgm object. But
! only the signals may be reset by the timer control. ! only the signals may be reset by the timer control.
!
! Example
!
! Timer Control of Outputs
!
! Suppose a flow control with an electrically-activated valve
! with increment/decrement control. The flow signal ( here kalle2)
! exists. One solution is shown in figure below. Note, the
! incremental output of the Pid object is used.
! @image orm_en1-102.gif
! Three step Control without Position Feedback
!
! The last segment names of the signals named by DoOpen and DoClose
! are shown in the symbol of INC3P0; here Do2 and Do1.
!
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Inc3P $ClassDef 135 Object Inc3P $ClassDef 135
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_grafcet.h ! @Code rt_plc_macro_grafcet.h
! The first step in a Grafcet-chain. ! The first step in a Grafcet-chain.
! ! @image orm_initstep_fo.gif
!
! At least one InitStep object has to be included in ! At least one InitStep object has to be included in
! every sequential chain. ! every sequential chain.
! !
...@@ -40,6 +41,22 @@ ...@@ -40,6 +41,22 @@
! or more Stoxx , Setxx or Resxx objects; see figure 3-51 ! or more Stoxx , Setxx or Resxx objects; see figure 3-51
! on page 3-328. It may also be left open or used as an ! on page 3-328. It may also be left open or used as an
! ordinary binary signal; see figure 3-22 on page 3-184. ! ordinary binary signal; see figure 3-22 on page 3-184.
!
! Examples
!
! Figure below shows how an InitStep , ISO, may be configured
! in a straight sequential chain. A chain is said to be straight
! if it does not contain any branching.
! @image orm_en1-104.gif
! InitStep Object in a Straight Sequential Chain
!
! The And object in figure below will be executed every time when
! the PLC program executes. The compilation may result in a warning
! 'No Grafcet standard' because of the connections between the And
! object and the Order respectively InitStep object, but the solution
! works
! @image orm_en1-105.gif
! Example of the Use of Step- and Order Status as an Ordinary Binary Signal
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object InitStep $ClassDef 136 Object InitStep $ClassDef 136
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_logic.h ! @Code rt_plc_macro_logic.h
! Logical inverter. ! Logical inverter.
! ! @image orm_inv_fo.gif
! Inverts a logical signal. ! Inverts a logical signal.
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_string.h ! @Code rt_plc_macro_string.h
! Convert analog value to string. ! Convert analog value to string.
! ! @image orm_itostr_fo.gif
!
! The ItoStr object converts the value of the integer input to ! The ItoStr object converts the value of the integer input to
! at string stored in ActVal. ! at string stored in ActVal.
! !
......
...@@ -12,10 +12,11 @@ ...@@ -12,10 +12,11 @@
! @Code rt_plc_arithm.c ! @Code rt_plc_arithm.c
! Limits an analog signal up/downwards and signals if a ! Limits an analog signal up/downwards and signals if a
! limitation has taken place. ! limitation has taken place.
! ! @image orm_limit_fo.gif
!
! The limits Max and Min may be external signals or ! The limits Max and Min may be external signals or
! adjustable parameters. ! adjustable parameters.
! ! @image orm_en1-108.gif
! The input signal may be fixed while one or both limits ! The input signal may be fixed while one or both limits
! are variable. ! are variable.
! If one of the limits is not wanted the input signal may ! If one of the limits is not wanted the input signal may
......
...@@ -20,6 +20,113 @@ ...@@ -20,6 +20,113 @@
! found in PROVIEW/R Designer's Guide. Most standard ! found in PROVIEW/R Designer's Guide. Most standard
! lists are a compound of several lists, each controlled ! lists are a compound of several lists, each controlled
! by a ListDescriptor object. ! by a ListDescriptor object.
! Advise about pwr_plc is found in the Help menu of the utility window,
! which is started from the Navigator. The pwr_plc utility may also be
! invoked direct in response to the DCL prompt:
!
! > pwrc ... and the utility responds with the prompt:
!
! pwrc>
!
! The PROVIEW/R distribution is delivered with some pre-configured ListDescriptor
! objects (structures) to perform standard lists. They are found in the Node
! Configuration below the hierarchy Layout-Lists. Commands in the pwr_plc utility
! or the utility window are used to create lists according tothese pre-configured
! ListDescriptor objects.
!
! If any pre-configured object is to be changed, please move the object named Lists
! and the whole hierarchy below it so that the $System object becomes the new parent
! object instead of the $Layout object. The pwr_plc utility first looks for an object
! named Lists below the $System object and if none is found the searching continues
! below the $Layout object. If any changed pre- configured ListDescriptor objects are
! not moved the modification will be lost at the next change of PROVIEW/R distribution.
!
! ListDescriptor objects can be arranged in structures to carry out repeated searching.
! @image orm_en1-110.gif
! Several ListDescriptor Objects may be Used to Control a Compound List
!
! The command
! pwrc> list signals
!
! starts searching in the work-bench database at the first pass according to the parent
! ListDescriptor object named SignalList, see figure 3-23. Suppose some objects are
! found that satisfy the selection criteria specified by SignalList. The names of these
! objects will be put into a 'parent-list'.
!
! Each of these selected objects will then be checked against the selection criteria
! now specified by the child ListDescriptor object named Signals (see above) in a
! new searching pass. This will result in a sublist for each object found in the first
! searching, i.e. for each object in the 'parent-list' there will be a sublist.
!
! Each of the selected objects in the sublist will then be checked against the selection
! criteria specified by the ListDescriptor object named Crossref (see above) in a third
! searching pass. This will result in a further sublist for each object found at the
! second searching.
!
! The general appearance of a signal list specified according to figure 3-23, will then be:
! @image orm_en1-111.gif
!
! A (parent) ListDescriptor object may have up to 5 (child) ListDescriptor objects. By
! configuring ListDescriptor objects as children of a ListDescriptor object sublists of
! a sublist are created and so on.
!
! Searching criteria
!
! The searching criteria are specified by
!
! - Hierarchyobject , Name and Class .
! - Deep , Crossreference and Externreference influence the searching.
!
! The searching is carried out gradually as illustrated below
! @image orm_en1-112.gif
!
! Note! If Crossreference or Externreference is set in the ListDescriptor object the
! searching will be carried out among all the objects in the work-bench database,
! otherwise only in the quantity of already selected objects.
!
! List appearance
!
! Some attributes that influence the list appearance are shown in figure See Last
! Page on a Signal List with Table of Contents. A header is put on the first page of
! the (parent)list if no table of contents is required, otherwise on the last page,
! see figure See Last Page on a Signal List with Table of Contents. 'Descriptor'
! specifies the name of the $ListDescriptor object that controlled the (parent)list
! production; cf. with figure See Several ListDescriptor Objects may be Used to Control
! a Compound List. 'Hierarchy' specifies the object in the hierarchy where the searching
! is to be started and 'System' specifies the name of the PROVIEW/R system.
!
! The circled object names in the table of contents in figure See Last Page on a
! Signal List with Table of Contents are controlled by the 'SignalList' object,
! figure See Several ListDescriptor Objects may be Used to Control a Compound List,
! and the rest of the table of contents by the object named 'Signals'. TableOfContents,
! TcSegments and TCMarginString are important in this case.
!
! @image orm_en1-113.gif
! Last Page on a Signal List with Table of Contents
!
! Different transcriptions
!
! Two types of transcriptions exist, ordinary and advanced.
!
! Names of objects that match the search criteria are written in the ordinary
! transcription . Data about the attributes that belong to the listed objects are
! possible to get listed as well.
! Use Parameter to specify individual attributes that are to be written.
!
! Use Full to get other options.
!
! An advanced transcription is used to create tables with up to 15 columns. A set
! of attributes is used to define each column; P1ColumnHeader , P1Parameter etc.
! specify column number one. If any PxParameter is specified the advanced
! transcription will be invoked. Some relevant attributes are indicated in
! figure See Example of Advanced Transcription.
! @image orm_en1-114.gif
! Example of Advanced Transcription
!
! The printing of object names satisfying the selection criteria can also be
! controlled by NoPrint and NoPrintIfNoList .
!
! The ListDescriptor object exists only in the development environment.
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object ListDescriptor $ClassDef 143 Object ListDescriptor $ClassDef 143
...@@ -95,6 +202,16 @@ SObject pwrb:Class ...@@ -95,6 +202,16 @@ SObject pwrb:Class
! objects arranged in several levels this attribute will ! objects arranged in several levels this attribute will
! influence the result. ! influence the result.
! !
! Assume that the parent ListDescriptor 'SignalList' in
! figure 'Several ListDescriptor Objects may be Used to
! Control a Compound List' selects a hierarchy as shown below
! @image orm_en1-115.gif
! Which of this objects will be selected according to the
! 2:nd ListDescriptor named 'Signals'? Class specifies which
! class property such objects have to satisfy and Deep if they
! have to reside on a certain level below the selected
! hierarchy or not.
!
! Assign to Deep the value TRUE if the searching is to be ! Assign to Deep the value TRUE if the searching is to be
! done on all levels below the selected hierarchy and ! done on all levels below the selected hierarchy and
! FALSE if the searching is to be limited to the first ! FALSE if the searching is to be limited to the first
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_arithm.c ! @Code rt_plc_arithm.c
! Max/Min selector. ! Max/Min selector.
! ! @image orm_maxmin_fo.gif
!
! The Maxmin object chooses the highest respective lowest ! The Maxmin object chooses the highest respective lowest
! current value among up to 8 input signals where the ! current value among up to 8 input signals where the
! first two may be constants. ! first two may be constants.
......
...@@ -13,6 +13,9 @@ ...@@ -13,6 +13,9 @@
! !
! Every message handler job needs a MessageHandler ! Every message handler job needs a MessageHandler
! object. ! object.
! @image orm_en1-120.gif
! Message Handler (Mh) Jobs in Different Nodes with their MessageHandler Objects
!
! If any MessageHandler object is not explicitly ! If any MessageHandler object is not explicitly
! configured to a node it will likewise be created in the ! configured to a node it will likewise be created in the
! runtime system. In this case the attributes are ! runtime system. In this case the attributes are
......
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
! @Code rt_plc_pid.c ! @Code rt_plc_pid.c
! Used to select control modes (MANUAL / AUTO / CASCADE) ! Used to select control modes (MANUAL / AUTO / CASCADE)
! or forced control of Pid objects. ! or forced control of Pid objects.
! ! @image orm_en1-121.gif
!
! The control modes are: ! The control modes are:
! · MANUAL -- when the 'operator' sets the output of the ! · MANUAL -- when the 'operator' sets the output of the
! Pid object ! Pid object
...@@ -222,13 +223,20 @@ SObject pwrb:Class ...@@ -222,13 +223,20 @@ SObject pwrb:Class
! !
! = 1 MANUAL. The operator selects the control signal ! = 1 MANUAL. The operator selects the control signal
! of the controller. The control signal is forced ! of the controller. The control signal is forced
! to the value of ForceVal. ! to the value of ForceVal. MinOut and MaxOut define
! the valid interval of the control signal.
! !
! = 2 AUTO. The operator selects and sets the set ! = 2 AUTO. The operator selects and sets the set
! point value, SetVal. ! point value, SetVal.
! MinSet and MaxSet define the valid interval of ! MinSet and MaxSet define the valid interval of SetVal.
! The controller uses SetVal as set point value and
! calculates the control signal.
!
! = 4 CASCADE. The controller uses XSetVal as set ! = 4 CASCADE. The controller uses XSetVal as set
! point value and calculates the control signal. ! point value and calculates the control signal.
! @image orm_en1-122.gif
! Illustrates the Connection between Forced Control and
! Control Modes
!*/ !*/
Object OpMod $Intern 12 Object OpMod $Intern 12
Body SysBody Body SysBody
......
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
! @Code rt_plc_drive.c ! @Code rt_plc_drive.c
! Motor valve positioner with three operating states and ! Motor valve positioner with three operating states and
! supervision of operation time and contactor response. ! supervision of operation time and contactor response.
! ! @image orm_en1-123.gif
!
! This object is similar to the Valve object but can ! This object is similar to the Valve object but can
! furthermore be stopped in a continues order, i.e. ! furthermore be stopped in a continues order, i.e.
! three-level action. ! three-level action.
...@@ -23,19 +24,44 @@ ...@@ -23,19 +24,44 @@
! By means of the operation time supervision it is ! By means of the operation time supervision it is
! possible to detect if the final control element is ! possible to detect if the final control element is
! stopped between the two operating states. ! stopped between the two operating states.
!
! One of three operating modes, LOCAL / MANUAL / AUTO, is ! One of three operating modes, LOCAL / MANUAL / AUTO, is
! selected by means of the input signal Local and the ! selected by means of the input signal Local and the
! output signal ManMode in the following way: ! output signal ManMode in the following way:
! ! @image orm_en1-124.gif
!
! In AUTO mode AutoOpen/AutoClose-request remains as long ! In AUTO mode AutoOpen/AutoClose-request remains as long
! as the operation has to continue, else the motion stops ! as the operation has to continue, else the motion stops
! in some intermediate position. ! in some intermediate position.
! If there are conflicting requests the request with the ! If there are conflicting requests the request with the
! highest priority wins; see below. ! highest priority wins; see below.
! ! @image orm_en1-125.gif
!
! Contactor alarm, Alarm5 or Alarm 6, stops current ! Contactor alarm, Alarm5 or Alarm 6, stops current
! operation. A new order resets the alarms and initiates ! operation. A new order resets the alarms and initiates
! a new operation. ! a new operation.
!
! Example
!
! Carriage Operation
! @image orm_en1-126.gif
!
! The carriage is run only in MANUAL mode.
!
! Contactor response and motion guard have the same supervision time.
! The supervision of the operation response also have to make an alarm.
! @image orm_en1-127.gif
! MValve Object Used in Motor Control
!
! Control Valve
! @image orm_en1-127.gif
! Motor Valve Control
!
! At LowLow-level the valve runs to closed position and at emergency
! stop ( 'nödstopp' in Swedish) all control of the valve stops.
!
! Alarm at error in contactor response or too long operation time.
! Operational order is broken by activated end limit position.
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object MValve $ClassDef 159 Object MValve $ClassDef 159
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_logic.h ! @Code rt_plc_macro_logic.h
! OR-gate. ! OR-gate.
! ! @image orm_or_fo.gif
!
! OR-gate for up to 8 inputs. Used inputs do not have to ! OR-gate for up to 8 inputs. Used inputs do not have to
! be chosen consecutively. ! be chosen consecutively.
! The basic symbol has 2 inputs. By means of the ! The basic symbol has 2 inputs. By means of the
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_grafcet.h ! @Code rt_plc_macro_grafcet.h
! A Grafcet order. ! A Grafcet order.
! ! @image orm_en1-131.gif
! To every sequential step one or more Order objects can ! To every sequential step one or more Order objects can
! be connected. ! be connected.
! Activities ( e.g. StoDo, ResDv, And, Or, Wait objects) ! Activities ( e.g. StoDo, ResDv, And, Or, Wait objects)
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
! window get a WindowOrderact object (see p. 3-395) as ! window get a WindowOrderact object (see p. 3-395) as
! parent object. ! parent object.
! !
! Note! The object's order list consists of either an ! Note! The object's order list consists of either an
! activity window or one or more Stoxx, Setxx, or Resxx ! activity window or one or more Stoxx, Setxx, or Resxx
! objects directly connected to the output of the Order ! objects directly connected to the output of the Order
! object. Remainder objects (e.g. And, Or, Wait, etc.) ! object. Remainder objects (e.g. And, Or, Wait, etc.)
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
! executes independent of the state of step or Order ! executes independent of the state of step or Order
! object. ! object.
! !
! Note! Code in the object's order list (see figure 3-34) is ! Note! Code in the object's order list (see figure 3-34) is
! executing as long as the step, to which the order ! executing as long as the step, to which the order
! belongs to, is active or the order ( if stored) is ! belongs to, is active or the order ( if stored) is
! active. The last execution of the order list will be ! active. The last execution of the order list will be
...@@ -72,6 +72,62 @@ ...@@ -72,6 +72,62 @@
! as parent object. ! as parent object.
! Opposite to an activity window a conditional window is ! Opposite to an activity window a conditional window is
! evaluated each time when the PLC program executes. ! evaluated each time when the PLC program executes.
!
! Example
!
! Figure below illustrates the use of Order objects:
!
! - Several orders (Ord0, Ord1, ... ) can be connected to a step, here S0.
! - Single activities can be connected direct to a step without any
! intermediate order, see the signals Do1 and Do2.
! - Several activities can be connected to an Order object; in this case
! two activities are connected to the Ord0 object e.g.
! @image orm_en1-132.gif
! Example in the Use of Order Objects
!
! - The thick vertical line in Ord5 indicates that the object has an underlying
! sub-window, in this case an activity window . Such a window is shown in the
! PLC Editor by Shift/MB1 and a double clicking in the right part of the Order
! object.
! - Do1 will be set as long as S0 is active. The SetDo function implies latching
! and the Do1-signal remains set even when S0 becomes inactive. The Do1's SetDo
! is not included in any order list.
! - Since StoDo for Do2 is not included in any order list it will execute each
! time when the PLC program executes. Do2 gets status according to the step
! - Do0 will be set when S0 becomes active. Because Ord1 has an S-order attribute
! it will remain set even when S0 becomes inactive. Do0 is not cleared before
! the ORD1 object is reset by a Reset_SO object; cf. Do2.
! - Dv1 and Dv4 are not set at once when the step S0 becomes active. The Ord0
! object is supplied with D and C attributes. In the beginning there is a delay,
! the duration is specified by the Attribute Editor, and then a condition Dv3
! follows. If S0 is active, the delay has elapsed, and the condition is satisfied
! Dv1 is set. Since the Set-function has latching the Dv-signal remains set also
! when S0 becomes inactive. When the delay has elapsed the Dv4-signal follows the
! condition Dv3 as long as the step is active.
! - The thick vertical line in Ord4 indicates that the order has an underlying
! sub-window, in this case a conditional window . If Ord4 is active, the condition
! is satisfied, and DI1 is not set Dv2 will be set, otherwise Dv2 is cleared. And0
! is not in the object's order list. A conditional window is opened in the following
! way: Specify in the object a C-attribute by means of the Attribute Editor. The
! conditional window is opened from the PLC Editor by Shift/MB1 and double clicking
! in the left part of the Order object.
! - Figure See Step and Order with Activity Window shows a part of a sequential chain.
! ORD0 indicates an activity window, and this is shown to the right.
! @image orm_en1-133.gif
! Step and Order with Activity Window
!
! Suppose that the PLC program executes by the frequency 10 Hz and the signals
! Av1=Av2=0. ORD1 sees that the active status of the step lasts for 5 seconds. Which
! value did Av1 and Av2 get then? The order list begins to execute as soon as the
! step becomes active. Av1 will be increased and stored 20 times when the status of
! Ord0 is FALSE and then 30 times when the status of Ord0 is TRUE. Since the step
! becomes inactive the order list is executed one another time with the order status
! FALSE. This means that Av1 = 51. Av2 is stored only when order status is TRUE,
! which makes Av2 = 30.
!
! To make use of the delay in a D-order either an OrderAct object as in the case with
! ORD0 or the status of the order as with ORD1 is used. Also remember that: as long
! as the step is active the order list will execute independent of the order status .
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Order $ClassDef 166 Object Order $ClassDef 166
......
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
! @Code rt_plc_macro_grafcet.h ! @Code rt_plc_macro_grafcet.h
! Fetches from an activity window the status of an ! Fetches from an activity window the status of an
! associated Order object. ! associated Order object.
! ! @image orm_orderact_fo.gif
!
! An order list is executing as long as the step, to ! An order list is executing as long as the step, to
! which the order belongs to, is active or the order ( if ! which the order belongs to, is active or the order ( if
! stored) is active. The last execution of the order list ! stored) is active. The last execution of the order list
......
...@@ -14,13 +14,36 @@ ...@@ -14,13 +14,36 @@
! varies in the time. The binary output has a ! varies in the time. The binary output has a
! pulse-proportional relay action in the dead zone, if ! pulse-proportional relay action in the dead zone, if
! MinOut < MaxOut, else on/off-action with hysteresis. ! MinOut < MaxOut, else on/off-action with hysteresis.
! ! @image orm_en1-135.gif
!
! The digit 2 in the object name comes from the output ! The digit 2 in the object name comes from the output
! which may have two distinct values with a two-step ! which may have two distinct values with a two-step
! action; e.g. full on / full off but also with the ! action; e.g. full on / full off but also with the
! meaning of open / closed, forward / backward, or right ! meaning of open / closed, forward / backward, or right
! / left etc. ! / left etc.
! !
! Two cases exist:
! 1. MinOut < MaxOut
!
! If OutVal < MinOut the Order is always FALSE and if OutVal > MaxOut the Order is always TRUE.
!
! @image orm_en1-136.gif
! When MinOut = OutVal = MaxOut the output, Order, has a pulse-proportional relay action
! with the cycle time Period .
!
! At pulse-proportional relay control the proportion between On/off is the same as the
! proportion of (OutVal - MinOut) / (MaxOut - MinOut)
!
! This quotient is updated at every scanning. If a period starts with an on-state it will
! remain until,
! (OutVal(t) - MinOut) / (MaxOut(t) - MinOut(t) * Period = time from last change of state
!
! After this it will be off-state until,
! 1 - (OutVal(t) - MinOut) / (MaxOut(t) - MinOut(t) * Period = time from last change of state
!
! 2. MinOut = MaxOut gives the output an on/off-action with hysteresis, likewise a combined
! Compl and Comph object
! @image orm_en1-140.gif
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Out2P $ClassDef 168 Object Out2P $ClassDef 168
...@@ -129,7 +152,7 @@ SObject pwrb:Class ...@@ -129,7 +152,7 @@ SObject pwrb:Class
Attr graphindex = 0 Attr graphindex = 0
Attr default_mask[0] = 1 Attr default_mask[0] = 1
Attr default_mask[1] = 1 Attr default_mask[1] = 1
Attr segname_annotation = 0 Attr segname_annotation = 1
Attr compmethod = 4 Attr compmethod = 4
Attr compindex = 0 Attr compindex = 0
Attr executeordermethod = 2 Attr executeordermethod = 2
...@@ -146,3 +169,12 @@ SObject pwrb:Class ...@@ -146,3 +169,12 @@ SObject pwrb:Class
EndObject EndObject
EndObject EndObject
EndSObject EndSObject
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_pid.c ! @Code rt_plc_pid.c
! Implements the robust PID control algorithm. ! Implements the robust PID control algorithm.
! ! @image orm_en1-141.gif
!
! In the normal case the Pid object is used together with ! In the normal case the Pid object is used together with
! the Mode object. The Mode object plays the part of an ! the Mode object. The Mode object plays the part of an
! interface for the Pid object. From the Mode object it ! interface for the Pid object. From the Mode object it
...@@ -40,6 +41,149 @@ ...@@ -40,6 +41,149 @@
! To handle and adjust the controller there are two more ! To handle and adjust the controller there are two more
! info forms containing e.g. a time diagram with process ! info forms containing e.g. a time diagram with process
! value, setpoint value and output signal. ! value, setpoint value and output signal.
!
! Examples
!
! Flow Control
!
! Flow control by speed control of a pump; see figure See Speed Control of a Pump.
!
! The set point value is set from an external optimising program (the Av signal
! OptFlow) once / 10 minutes e.g., or direct by an operator.
! Starts with the control signal 0 at pump start.
!
! @image orm_en1-151.gif
! Speed Control of a Pump
!
! A solution in principle to control the pump is shown in figure 3-36
!
! @image orm_en1-152.gif
! Configuration of Speed Control of a Pump
!
! The Mode object is configured as follows:
! @image orm_en1-153.gif
!
! The Pid object is configured as follows:
! @image orm_en1-154.gif
!
! The input signal Force1 and the parameter OpMod in the Mode object shows the
! current operational mode.
!
! OpMod = MANUAL (=1)
! The output signal Force from the Mode object becomes TRUE. The Pid
! object is forced to the value of ForcVal.
! At the switching time, AUTO --> MANUAL, ForcVal has the value of the
! last control signal OutVal. This value is a good initial value to start upon
! in a manual increase/decrease session.
! In this mode the operator can change ForcVal as well as the set point
! value SetVal.
! MinOut and MaxOut, in the Pid object, represent no limitation at all in
! the MANUAL mode.
!
! OpMod = AUTO (=2)
! The operator sets and changes the flow set point value SetVal. The value
! has to be in the interval of MinSet and MaxSet. The optimising set point
! value XSetVal is ignored.
! The controller's control signal OutVal varies in the interval 10 -100.
! The Mode object reads in the Pid object the last value of OutVal and
! stores it in the output signal ForcVal as long as this mode continues.
!
! OpMod = CASCADE (=4)
! The optimising external set point value XSetVal is copied into SetVal.
! The Pid object controls against this set point value..
!
! Force1 = 1 PUMP STOP
! Independent of the value of OpMod the control signal of the controller is
! forced against ForcVal = XForcVal (=0), i.e. MinOut and MaxOut
! represent no limitation at all at forced control.
!
! Alternate Controllers with Tracking
!
! @image orm_en1-155.gif
! Shunt Control
!
! Through shunt control by the heat exchanger, the TT1-temperature in the
! secondary loop will be kept constant. The TT2-temperature of the return
! flow to the boiler may not be below the dewpoint, which may be the case
! at high power consumption.
!
! At low primary temperature TT2-control is selected. When the operating
! conditions allows, the control is focused on TT1 again.
!
! In MANUAL mode the shunt valve is fed by the TT1-controller. TIC2 may not
! be set in MANUAL mode. See figure See PLC program with Alternative Controllers.
!
! Adjustments
!
! ... in the Mode object TIC1M have been selected:
!
! AccMod = 3 , i.e. AUTO / MANUAL are allowed modes.
! OpMod = AUTO means that the operator sets the set point value in SetVal
! = MANUAL means that the operator sets the output signal ForcVal
! ... in the Pid object TIC1 has been selected:
!
! Inverse = TRUE, i.e. low TT1-temperature implies an increasing flow through the heat exchanger.
! ... in the Mode object TIC2M have been selected:
!
! AccMod = 2 , i.e. only AUTO
! The designer sets the limit value, i.e. the minimum of TT2 in SetVal
! ... in the Pid object TIC2 has been selected:
!
! Inverse = FALSE, i.e. reverse control action, at low TT2-temperatures the
! flow through the heat exchanger decreases, the by-pass increases.
!
! @image orm_en1-156.gif
! PLC program with Alternative Controllers
!
! Operating conditions:
!
! Normal operating conditions. TIC1 in AUTO. TIC2 follows in forced control.
! TT2 low. TIC2 is switched to AUTO, and TIC1 follows in forced control.
! TIC1M in MANUAL. TIC1 chooses the value of TICM. ForcVal as output
! TIC2 follows in forced control.
! TIC2 returns to AUTO when TT2 goes below the limit.
! The flow through the heat exchanger is enough to put the TT1 above the set
! point value. Switches to TT1-control, i.e. TIC1 controls the shunt valve.
! Cascade Control
! Temperature control in a furnace with two separate fuel loops, apart from
! the control of combustion air for the furnace, is shown in figure See Block
! Diagram Temperature Control. TT is the temperature transmitter, FT the flow
! transmitters, and FIC the flow controllers. TIC is a temperature controller
!
! @image orm_en1-157.gif
! Block Diagram Temperature Control
!
! All the Pid objects have Inverse set to TRUE. Forced control with average
! flow ought to be added to TIC1M, when none of the flow controllers is in
! cascade. An implementation is shown in figure See Traditional Cascade Configuration.
!
! @image orm_en1-158.gif
! Traditional Cascade Configuration
!
! Common or Individual Control of Several Control Loops
! In figure 3-41 two control loops share a common Mode object to a synchronous
! behaviour in AUTO and MANUAL mode. But every single loop can also be controlled
! individually from separate Mode objects with an internal set point and its own
! manual output signal. The individual control overrides the common one.
!
! @image orm_en1-159.gif
! Two Levels with Mode Objects in a Control Loop
!
! Ratio Control
! Figure See Addition of a Reagent shows addition of a reagent. The ratio of the
! mixing is to be kept constant and independent of the FT2-flow. FT is the flow
! transmitter and FIC the flow controller.
!
! @image orm_en1-160.gif
! Addition of a Reagent
!
! An implementation is shown in figure See Ratio Control. The control can be made
! in AUTO (= the operator sets the ratio set point value) or MANUAL ( = the
! operator sets the control signal to adjust the valve position). The ratio
! process value ought to be checked against division by zero.
!
! @image orm_en1-161.gif
! Ratio Control
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object PID $ClassDef 174 Object PID $ClassDef 174
...@@ -561,6 +705,7 @@ SObject pwrb:Class ...@@ -561,6 +705,7 @@ SObject pwrb:Class
!/** !/**
! Specifies the hysteresis on MinOut and MaxOut in ! Specifies the hysteresis on MinOut and MaxOut in
! connection with the handling of EndMin/EndMax. ! connection with the handling of EndMin/EndMax.
! @image orm_en1-144.gif
!*/ !*/
Object EndHys $Intern 47 Object EndHys $Intern 47
Body SysBody Body SysBody
......
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
! @Code rt_plc_io.c ! @Code rt_plc_io.c
! Translates a pulse counter value into an engineering ! Translates a pulse counter value into an engineering
! value, e.g. position, volume etc. ! value, e.g. position, volume etc.
! ! @image orm_en1-162.gif
!
! Suppose the engineering value is a position. The actual ! Suppose the engineering value is a position. The actual
! position is then calculated at every scanning by means ! position is then calculated at every scanning by means
! of the straight line equation ! of the straight line equation
...@@ -24,6 +25,7 @@ ...@@ -24,6 +25,7 @@
! saved position, PosCal1, at calibration point 1. The ! saved position, PosCal1, at calibration point 1. The
! Gain factor is either specified or calculated by means ! Gain factor is either specified or calculated by means
! of a second calibration point, calibration point 2. ! of a second calibration point, calibration point 2.
! @image orm_en1-163.gif
! How to carry out the calibrations is described below ! How to carry out the calibrations is described below
! under Calibration. ! under Calibration.
!*/ !*/
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_arithm.c ! @Code rt_plc_arithm.c
! Derivative a pulse Pi-signal. ! Derivative a pulse Pi-signal.
! ! @image orm_pispeed_fo.gif
!
! Converts a pulse signal, e.g. volume to flow, distance ! Converts a pulse signal, e.g. volume to flow, distance
! to velocity, etc. ! to velocity, etc.
! The pulse difference becomes correct even if the input ! The pulse difference becomes correct even if the input
......
...@@ -27,12 +27,20 @@ ...@@ -27,12 +27,20 @@
! Between samples in a slowly sampled graph interpolation ! Between samples in a slowly sampled graph interpolation
! takes place. ! takes place.
! !
! Hints ! Hints
!
! The buttons 'Trend' and 'Fast' in the operator ! The buttons 'Trend' and 'Fast' in the operator
! environment display both lists of those PlotGroup objects ! environment display both lists of those PlotGroup objects
! ( or graphs) that are available on the node independent ! ( or graphs) that are available on the node independent
! of the user. Which list a specific PlotGroup object ! of the user. Which list a specific PlotGroup object
! belongs to depends of Trend. ! belongs to depends of Trend.
!
! The users 'Host' and 'Process', according to figure below, will
! get lists with the same appearance but by grouping the PlotGroup
! objects in separate hierarchies is it possible to the designer to
! indicate which 'graphs' concern 'Host' respectively 'Process'
! @image orm_en1-170.gif
! Configuration of PlotGroup Objects
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object PlotGroup $ClassDef 178 Object PlotGroup $ClassDef 178
......
...@@ -21,7 +21,8 @@ ...@@ -21,7 +21,8 @@
! PosFlank specifies which ActualValue transition that ! PosFlank specifies which ActualValue transition that
! will initiate a pulse. If a positive or negative pulse ! will initiate a pulse. If a positive or negative pulse
! is generated depend on PosPulse. ! is generated depend on PosPulse.
! ! @image orm_en1-171.gif
!
! ActualValue is handled e.g. from application programs ! ActualValue is handled e.g. from application programs
! by the system call: gdh_SetObjectInfo(...) ! by the system call: gdh_SetObjectInfo(...)
! If ResetActualValue = TRUE, PROVIEW will restore ! If ResetActualValue = TRUE, PROVIEW will restore
......
...@@ -15,7 +15,8 @@ ...@@ -15,7 +15,8 @@
! the digit 3 on the fact that the output signals specify ! the digit 3 on the fact that the output signals specify
! one of three distinct orders e.g. increase / decrease / ! one of three distinct orders e.g. increase / decrease /
! 0. ! 0.
! ! @image orm_en1-178.gif
!
! Exactly as for Inc3P it is possible to govern by means ! Exactly as for Inc3P it is possible to govern by means
! of the outputs Open / Close and/or the signals named by ! of the outputs Open / Close and/or the signals named by
! DoOpen/DoClose. The outputs and the signals may be set ! DoOpen/DoClose. The outputs and the signals may be set
...@@ -33,6 +34,7 @@ ...@@ -33,6 +34,7 @@
! dead zones specified by ErrSo and ErrSta. The dead zone ! dead zones specified by ErrSo and ErrSta. The dead zone
! prevents cycles from repeating to rapidly and becoming ! prevents cycles from repeating to rapidly and becoming
! destructive to the equipment. ! destructive to the equipment.
! @image orm_en1-179.gif
! The duration of the DoOpen/DoClose signals, the pulse ! The duration of the DoOpen/DoClose signals, the pulse
! length, is equal to ! length, is equal to
! !
...@@ -44,6 +46,19 @@ ...@@ -44,6 +46,19 @@
! !
! It is possible to use the outputs Open / Close and the ! It is possible to use the outputs Open / Close and the
! signals named by DoOpen/DoClose at the same time. ! signals named by DoOpen/DoClose at the same time.
!
! Example
!
! Timer Control of Outputs
!
! Suppose a flow control with an electrically-activated valve
! with increment/decrement control. The flow signal (here kalle2)
! and the valve position (Ai1) exist. One solution is shown in
! figure below. Note that positional output of the Pid object is
! used. The presence of a Curve object can be motivated by a strong
! non-linear valve characteristic.
! @image orm_en1-180.gif
! Three Step Control with Position Feedback.
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Pos3P $ClassDef 182 Object Pos3P $ClassDef 182
......
...@@ -11,13 +11,55 @@ ...@@ -11,13 +11,55 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_drive.c ! @Code rt_plc_drive.c
! Positioner. ! Positioner.
! ! @image orm_en1-172.gif
!
! The positioning is carried out, without any hysteresis, ! The positioning is carried out, without any hysteresis,
! by the output signals Order1 and Order2. ! by the output signals Order1 and Order2.
! One of two operating modes, MANUAL / AUTO, is selected ! One of two operating modes, MANUAL / AUTO, is selected
! by means of the output signal ManMode in the following ! by means of the output signal ManMode in the following
! way: ! way:
! ... ! @image orm_en1-173.gif
! MANUAL The MANUAL mode is thought to be handled from the object\s display.
!
! * A set point value is set in SetPos.
! * The positioning is started by setting PosOn to TRUE.
! * The positioning is finished of different reasons:
! @image orm_en1-174.gif
!
! - the process value has been within the dead-zone intervals,
! i.e. the target range, during a time specified by TimerTime.
!
! - PosOn becomes FALSE.
!
! - (the input signal) Reset becomes TRUE.
!
!
! The positioning starts on a leading edge on the input signal AutoPos.
! It can be finished of different reasons:
! - TimerTime > 0. The process value has been within the dead zone
! intervals, i.e. the target range, during a time specified by TimerTime.
! A new positioning process is triggered by a leading edge on AutoPos,
! i.e. not because PosVal is outside the target range.
!
! - TimerTime = 0. The positioning is never finished but continues to
! follow SetPos until Reset becomes TRUE.
!
! - (the input signal) Reset becomes TRUE.
!
! Example
!
! Position Controlled Carriage.
!
! By means of a push button the positioning starts, and the carriage runs
! to a set point value set by a potentiometer. The positioning is to be
! interrupted after 5 seconds in the 'target' range.
! @image orm_en1-176.gif
! Position Control
!
! The direction of the carriage is directed by Order1 or Order2 and the
! speed by an analog reference. The speed ought to be slow near the set
! point value and this is done by a lower value of the reference.
! @image orm_en1-177.gif
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Posit $ClassDef 183 Object Posit $ClassDef 183
...@@ -177,6 +219,7 @@ SObject pwrb:Class ...@@ -177,6 +219,7 @@ SObject pwrb:Class
!/** !/**
! The values, which have to be >= 0, specify the lower and ! The values, which have to be >= 0, specify the lower and
! the upper end in the 'target' range. ! the upper end in the 'target' range.
! @image orm_en1-175.gif
!*/ !*/
Object DeadZone1 $Intern 11 Object DeadZone1 $Intern 11
Body SysBody Body SysBody
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_logic.h ! @Code rt_plc_macro_logic.h
! One-shot pulse with variable width. ! One-shot pulse with variable width.
! ! @image orm_pulse_fo.gif
!
! The object produces, on a leading edge on the input, a ! The object produces, on a leading edge on the input, a
! pulse with the duration specified by TimerTime. ! pulse with the duration specified by TimerTime.
! !
...@@ -19,12 +20,14 @@ ...@@ -19,12 +20,14 @@
! propagating a pulse, the pulse is extended, as the ! propagating a pulse, the pulse is extended, as the
! pulse period, TimerTime, is counted from the last ! pulse period, TimerTime, is counted from the last
! leading edge of the input signal. ! leading edge of the input signal.
! ! @image orm_en1-182.gif
! Hints !
! Hints
! !
! If a reset function is needed instead of a pulse with a ! If a reset function is needed instead of a pulse with a
! certain period the pulse can be realized by a Wait, And, ! certain period the pulse can be realized by a Wait, And,
! Or, Edge, and a SR_R object. ! Or, Edge, and a SR_R object.
! @image orm_en1-183.gif
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Pulse $ClassDef 184 Object Pulse $ClassDef 184
......
...@@ -11,12 +11,25 @@ ...@@ -11,12 +11,25 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_arithm.c ! @Code rt_plc_arithm.c
! Limits a quantity's rate of change. ! Limits a quantity's rate of change.
! ! @image orm_ramp_fo.gif
!
! Separate limit rates at increase respectively decrease; ! Separate limit rates at increase respectively decrease;
! RampUp and RampDown. ! RampUp and RampDown.
! Sets du = RampUp * ScanTime and dn = RampDown * ScanTime. ! Sets du = RampUp * ScanTime and dn = RampDown * ScanTime.
! An input signal determines the output signal in the following way
! @image orm_en1-185.gif
!
! An external signal may also be used as feedback. See example below.
!
! Example
! !
! An external signal may also be used as feedback. ! In this example an external signal is connected to the FB-input of
! the Ramp object. The feedback connection from the Select object to
! the Ramp object is of the type analog feedback.
! As long as Control is FALSE the output of the Select object is
! ramped up and down. When Control is TRUE the output gets the constant
! value of RampUp ScanTime .
! @image orm_en1-186.gif
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Ramp $ClassDef 189 Object Ramp $ClassDef 189
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Reset Digital input. ! Reset Digital input.
! ! @image orm_resdi_fo.gif
!
! If the input signal is TRUE, the specified local ! If the input signal is TRUE, the specified local
! Di-signal is cleared at the execution, otherwise there ! Di-signal is cleared at the execution, otherwise there
! will be no effect on the Di-signal. ! will be no effect on the Di-signal.
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Reset Digital output. ! Reset Digital output.
! ! @image orm_resdo_fo.gif
!
! If the input signal is TRUE, the specified local ! If the input signal is TRUE, the specified local
! Do-signal is cleared at the execution, otherwise there ! Do-signal is cleared at the execution, otherwise there
! will be no effect on the Do-signal. ! will be no effect on the Do-signal.
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Reset Digital parameter. ! Reset Digital parameter.
! ! @image orm_resdo_fo.gif
!
! If the input signal is TRUE, the value of the specified ! If the input signal is TRUE, the value of the specified
! local digital quantity ! local digital quantity
! ( e.g. internal digital variable in an arbitrary ! ( e.g. internal digital variable in an arbitrary
......
...@@ -10,7 +10,9 @@ ...@@ -10,7 +10,9 @@
!/** !/**
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! ! Reset digital value
! @image orm_resdv_fo.gif
!
! If the input signal is TRUE, the specified local ! If the input signal is TRUE, the specified local
! Dv-signal is cleared at the execution, otherwise there ! Dv-signal is cleared at the execution, otherwise there
! will be no effect on the Dv-signal. ! will be no effect on the Dv-signal.
......
...@@ -10,7 +10,9 @@ ...@@ -10,7 +10,9 @@
!/** !/**
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_grafcet.h ! @Code rt_plc_macro_grafcet.h
! ! Resets a stored Grafcet order when the input is TRUE.
! @image orm_reset_so_fo.gif
!
! If the Order object has no S-order attribute nothing ! If the Order object has no S-order attribute nothing
! will happens. ! will happens.
! Usually, the Reset_SO is located in a Grafcet program, ! Usually, the Reset_SO is located in a Grafcet program,
...@@ -18,6 +20,18 @@ ...@@ -18,6 +20,18 @@
! located in an ordinary PLC program. ! located in an ordinary PLC program.
! !
! Contains no relevant information (=data) in rtdb. ! Contains no relevant information (=data) in rtdb.
!
! Hints
!
! One way to specify the complete name of the Order object in the Reset_SO object is to:
!
! - Selects, in the Navigator, the actual Order object.
! - Double click with Ctrl/ MB1 (= the left button of a 3-button mouse)
! on the right part of the Reset_SO's symbol.
! - The last segment name of the Order object is then shown in the symbol
! of Reset_SO. In figure below the last segment name of the Order object is Ord1.
! @image orm_reset_so_1.gif
! Reset of an S-order
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Reset_SO $ClassDef 194 Object Reset_SO $ClassDef 194
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_div.h ! @Code rt_plc_macro_div.h
! Fetches the scantime of the current thread. ! Fetches the scantime of the current thread.
! @image orm_scantime_fo.gif
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object ScanTime $ClassDef 278 Object ScanTime $ClassDef 278
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_arithm.c ! @Code rt_plc_arithm.c
! Selects one out of two analog quantities. ! Selects one out of two analog quantities.
! ! @image orm_en1-193.gif
!
! The selected value is controlled by a binary quantity ! The selected value is controlled by a binary quantity
! in the following way: ! in the following way:
! VAL = HIG and NOT = LOW, if con(trol) is TRUE ! VAL = HIG and NOT = LOW, if con(trol) is TRUE
......
...@@ -12,12 +12,15 @@ ...@@ -12,12 +12,15 @@
! @Code rt_plc_macro_grafcet.h ! @Code rt_plc_macro_grafcet.h
! Stores, in the associated object, i.e. an Order or ! Stores, in the associated object, i.e. an Order or
! Trans object, the status of a conditional window. ! Trans object, the status of a conditional window.
! ! @image orm_setcond_fo.gif
!
! A conditional window is used by Trans objects and Order ! A conditional window is used by Trans objects and Order
! objects with C-order attribute. For instance, the ! objects with C-order attribute. For instance, the
! result of a combinational circuit is stored by a ! result of a combinational circuit is stored by a
! SetCond object. ! SetCond object. See figure below.
! ! @image orm_en1-195.gif
! SetCond in a Conditional Window
!
! A conditional window is executing each time when the ! A conditional window is executing each time when the
! PLC program executes. ! PLC program executes.
!*/ !*/
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Set Digital input. ! Set Digital input.
! ! @image orm_setdi_fo.gif
!
! If the input signal is TRUE, the specified local ! If the input signal is TRUE, the specified local
! Di-signal is set at the execution, otherwise there will ! Di-signal is set at the execution, otherwise there will
! be no effect on the Di-signal. ! be no effect on the Di-signal.
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Set Digital output. ! Set Digital output.
! ! @image orm_setdo_fo.gif
!
! If the input signal is TRUE, the specified local ! If the input signal is TRUE, the specified local
! Do-signal is set at the execution, otherwise there will ! Do-signal is set at the execution, otherwise there will
! be no effect on the Do-signal. ! be no effect on the Do-signal.
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Set Digital parameter. ! Set Digital parameter.
! ! @image orm_setdp_fo.gif
! If the input signal is TRUE, the value of the specified ! If the input signal is TRUE, the value of the specified
! local digital quantity ! local digital quantity
! ( e.g. internal digital variable in an arbitrary ! ( e.g. internal digital variable in an arbitrary
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Set Digital value. ! Set Digital value.
! ! @image orm_setdv_fo.gif
!
! If the input signal is TRUE, the specified local ! If the input signal is TRUE, the specified local
! Dv-signal is set at the execution, otherwise there will ! Dv-signal is set at the execution, otherwise there will
! be no effect on the Do-signal. ! be no effect on the Do-signal.
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! Object to display the value of some important PLC ! Object to display the value of some important PLC
! program attributes. ! program attributes.
! ! @image orm_en1-200.gif
!
! ShowPlcAttr object is, for instance, configured in one ! ShowPlcAttr object is, for instance, configured in one
! of the Document objects in a PLC program. ! of the Document objects in a PLC program.
! !
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_arithm.c ! @Code rt_plc_arithm.c
! Derivative unit. ! Derivative unit.
! ! @image orm_speed_fo.gif
!
! Differentiation of the input signal. The output is ! Differentiation of the input signal. The output is
! proportional to the rate of change (derivative) of the ! proportional to the rate of change (derivative) of the
! input. ! input.
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_logic.h ! @Code rt_plc_macro_logic.h
! Set Reset flip-flops. ! Set Reset flip-flops.
! ! @image orm_sr_r_fo.gif
!
! The SR flip-flops hold on a leading edge on the ! The SR flip-flops hold on a leading edge on the
! set-signal and reset on a leading edge on the ! set-signal and reset on a leading edge on the
! res(et)-signal. ! res(et)-signal.
...@@ -19,8 +20,11 @@ ...@@ -19,8 +20,11 @@
! If both the set and reset signals are TRUE at the same ! If both the set and reset signals are TRUE at the same
! time the state of the flip-flops is undefined. At this ! time the state of the flip-flops is undefined. At this
! condition is a ! condition is a
! SR_S flip_flop TRUE ( = Set) ! - SR_S flip_flop TRUE ( = Set)
! SR_R flip_flop FALSE ( = Reset) ! - SR_R flip_flop FALSE ( = Reset)
!
! @image orm_en1-204.gif
!*/
SObject pwrb:Class SObject pwrb:Class
Object SR_R $ClassDef 211 Object SR_R $ClassDef 211
Body SysBody Body SysBody
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_logic.h ! @Code rt_plc_macro_logic.h
! Set Reset flip-flops. ! Set Reset flip-flops.
! ! @image orm_sr_s_fo.gif
!
! The SR flip-flops hold on a leading edge on the ! The SR flip-flops hold on a leading edge on the
! set-signal and reset on a leading edge on the ! set-signal and reset on a leading edge on the
! res(et)-signal. ! res(et)-signal.
...@@ -19,8 +20,10 @@ ...@@ -19,8 +20,10 @@
! If both the set and reset signals are TRUE at the same ! If both the set and reset signals are TRUE at the same
! time the state of the flip-flops is undefined. At this ! time the state of the flip-flops is undefined. At this
! condition is a ! condition is a
! SR_S flip_flop TRUE ( = Set) ! - SR_S flip_flop TRUE ( = Set)
! SR_R flip_flop FALSE ( = Reset) ! - SR_R flip_flop FALSE ( = Reset)
!
! @image orm_en1-204.gif
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object SR_S $ClassDef 212 Object SR_S $ClassDef 212
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_grafcet.h ! @Code rt_plc_macro_grafcet.h
! The first Grafcet step in a sub-sequential chain. ! The first Grafcet step in a sub-sequential chain.
! ! @image orm_ssbegin_fo.gif
!
! The object is set active when its parent, i.e. the ! The object is set active when its parent, i.e. the
! current SubStep object, becomes active. Compare with ! current SubStep object, becomes active. Compare with
! the SsEnd object which is the last step in a ! the SsEnd object which is the last step in a
...@@ -20,6 +21,9 @@ ...@@ -20,6 +21,9 @@
! connected at the same time as well as one or more Stoxx, ! connected at the same time as well as one or more Stoxx,
! Setxx or Resxx objects. The output can also be left ! Setxx or Resxx objects. The output can also be left
! open or be used as an ordinary binary signal. ! open or be used as an ordinary binary signal.
!
! @image orm_en1-206.gif
! Example on a Sub-Sequential Chain
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object SsBegin $ClassDef 213 Object SsBegin $ClassDef 213
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_grafcet.h ! @Code rt_plc_macro_grafcet.h
! The last Grafcet step in a sub-sequential chain. ! The last Grafcet step in a sub-sequential chain.
! ! @image orm_ssend_fo.gif
!
! The object remains active until its SubStep object ! The object remains active until its SubStep object
! becomes active. See figure 3-50. ! becomes active. See figure 3-50.
! The object sets Order[1]= TRUE in its parent, i.e. the ! The object sets Order[1]= TRUE in its parent, i.e. the
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_grafcet.h ! @Code rt_plc_macro_grafcet.h
! An ordinary sequential Grafcet step. ! An ordinary sequential Grafcet step.
! ! @image orm_step_fo.gif
!
! To the right output one or more Order objects can be ! To the right output one or more Order objects can be
! connected at the same time as well as one or more Stoxx, ! connected at the same time as well as one or more Stoxx,
! Setxx or Resxx objects. The output can also be left ! Setxx or Resxx objects. The output can also be left
...@@ -22,7 +23,83 @@ ...@@ -22,7 +23,83 @@
! Each step in a sequential chain will be cleared by a ! Each step in a sequential chain will be cleared by a
! common reset signal; for more information see the ! common reset signal; for more information see the
! InitStep object. ! InitStep object.
!*/ !
! Examples
!
! @image orm_en1-209.gif
! Connections to the Step Objects in a Straight Sequence
!
! It is important to know the difference between a connection direct to a Step
! and a connection to an Order; see figure Connections to the Step Objects in
! a Straight Sequence. Assume e.g. a StoDv object. If it is connected direct to
! a Step it will execute each time when the PLC program executes. In figure
! Connections to the Step Objects in a Straight Sequence this means that:
!
! - Dv1 is set as long as the step S1 is active, since a Set xx object executes
! only as long as the input is set, i.e. Dv1 remains set also when S1 becomes
! inactive.
! - Do1 gets the value TRUE as long as S1 is active and the value FALSE when S1
! becomes inactive. If Do1 is set from any other object since S1 became inactive
! it will be cleared at once.
!
! On the other hand, if the object is connected to an Order it will execute at
! every scanning when the Order is active plus one further time, i.e. exactly
! as if it was located in an activity window . Remainder logic ( see e.g. figure
! Example of the Use of Step- and Order Status as an Ordinary Binary Signal
! which use the status of an Order object are executing each time when the PLC
! program executes. In figure Connections to the Step Objects in a Straight Sequence
! this means that:
!
! - Do2 is set as long as ORD2 is active and reset when ORD2 is inactive, i.e. Do2
! creates a pulse. If Do2 is set from any other object since ORD2 became inactive
! it will not be cleared, because the order list of ORD2 does not execute.
! - Do0 is set as long as ORD2 is active plus one further time.
!
! @image orm_en1-210.gif
! Alternative Sequences
!
! At alternative sequences the transition conditions have to be different in
! some way. In figure See Alternative Sequences at most one of the conditions
! T0, T1, T2 or T7 will be satisfied at every moment. If more than one condition
! is satisfied at the same time the result of the execution is not easy to predict.
!
! The special types of connection lines used at alternative sequences (branching
! and when the lines are brought together) are created in the following way:
! Choose, before the connection is done, in the View menu Connections --> Palette
! and then select StepConv or StepDiv in the lower palette under ConGrafcet.
! The fact that alternative sequences starts with a branch from one step and
! are brought together at one step come back in the name of the corresponding
! line objects.
!
! Parallel sequences are used when the execution will continue in parallel branches.
! Figure Parallel Sequences shows an example with two parallel branches. When S13 is
! active and the transition condition T1 becomes satisfied the transition will take
! place, i.e. S14 and S15 both are put active and S13 inactive. Then the parallel
! branches will execute independent of each other.
!
! Because the order when respective branch has finished its execution may vary it is
! suitable to finish each step by a 'waiting step' (i.e. a step without any activities)
! and Cond put to TRUE in the following transition condition (T4 in the example). The
! branches are brought together to the main branch when all the branches have reached
! its 'waiting step'. This means in figure 3-54 that if S16 and S17 both are active,
! T4 is satisfied, then S18 will become active and S16 and S17 both inactive.
!
! @image orm_en1-211.gif
! Parallel Sequences
!
! The special types of connection lines used at parallel sequences (branching and
! when the lines are brought together) are created in a way similar to that of
! alternative sequences. Choose, Connections --> Palette and then select TransConv
! or TransDiv in the lower palette under ConGrafcet. The fact that parallel
! sequences starts with a branch from one Trans object and are brought together
! at one Trans object come back in the name of the corresponding line objects.
!
! @image orm_en1-212.gif
! A Sequential Chain with Repetition of a Step
!
! Figure A Sequential Chain with Repetition of a Step shows that the order of
! execution in a sequential chain can also go backwards.
!*/
SObject pwrb:Class SObject pwrb:Class
Object Step $ClassDef 215 Object Step $ClassDef 215
Body SysBody Body SysBody
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
! when a connection is created from an analog output. The object will ! when a connection is created from an analog output. The object will
! be transformed to its final appearence when it is connected to a ! be transformed to its final appearence when it is connected to a
! signal or attribute. ! signal or attribute.
! @image orm_stoageneric_fo.gif
!*/ !*/
! !
SObject pwrb:Class SObject pwrb:Class
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Store Analog input. ! Store Analog input.
! ! @image orm_stoai_fo.gif
!
! Stores an analog value ( e.g. output signal of the type ! Stores an analog value ( e.g. output signal of the type
! pwr_tFloat32) on the specified local Ai object. ! pwr_tFloat32) on the specified local Ai object.
! !
......
...@@ -13,10 +13,15 @@ ...@@ -13,10 +13,15 @@
! !
! Stores an analog value ( e.g. output signal of the type ! Stores an analog value ( e.g. output signal of the type
! pwr_tFloat32) on the specified local Ao object. ! pwr_tFloat32) on the specified local Ao object.
! ! @image orm_stoao_fo.gif
!
! The complete name of the Ao object has to be supplied; ! The complete name of the Ao object has to be supplied;
! its last segment is shown in the right empty part of ! its last segment is shown in the right empty part of
! the symbol. ! the symbol.
!
! Example
! @image orm_en1-215.gif
! The current sum of Ai1 and Ai0 is calculated and stored in Ao0
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object StoAo $ClassDef 219 Object StoAo $ClassDef 219
......
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Store Analog parameter. Used in run time to write in ! Store Analog parameter. Used in run time to write in
! analog parameters. ! analog parameters.
! ! @image orm_stoap_fo.gif
!
! Stores an analog value in specified floating-point ! Stores an analog value in specified floating-point
! attribute ( scalar or element in 1-dimensional array by ! attribute ( scalar or element in 1-dimensional array by
! the type pwr_tFloat32) in a local object. The receiving ! the type pwr_tFloat32) in a local object. The receiving
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Store Analog value. ! Store Analog value.
! @image orm_stoav_fo.gif
! !
! Stores an analog value ( e.g. output signal of the type ! Stores an analog value ( e.g. output signal of the type
! pwr_tFloat32) on the specified local Av object. ! pwr_tFloat32) on the specified local Av object.
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
! when a connection is created from a digital output. The object will ! when a connection is created from a digital output. The object will
! be transformed to its final appearence when it is connected to a ! be transformed to its final appearence when it is connected to a
! signal or attribute. ! signal or attribute.
! @image orm_stodgeneric_fo.gif
!*/ !*/
! !
SObject pwrb:Class SObject pwrb:Class
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Store Digital input. ! Store Digital input.
! ! @image orm_stodi_fo.gif
!
! Stores the value of a digital quantity on the specified ! Stores the value of a digital quantity on the specified
! local Di object. ! local Di object.
! !
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Store Digital output. ! Store Digital output.
! ! @image orm_stodo_fo.gif
!
! Stores the value of a digital quantity on the specified ! Stores the value of a digital quantity on the specified
! local Do object. ! local Do object.
! The complete name of the Do object has to be supplied; ! The complete name of the Do object has to be supplied;
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Store Digital parameter. ! Store Digital parameter.
! ! @image orm_stodp_fo.gif
!
! Stores the value of a binary quantity in specified byte ! Stores the value of a binary quantity in specified byte
! attribute ( scalar or element in 1-dimensional array by ! attribute ( scalar or element in 1-dimensional array by
! the type pwr_tBoolean) in a local object. The receiving ! the type pwr_tBoolean) in a local object. The receiving
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Store Digital value. ! Store Digital value.
! ! @image orm_stodv_fo.gif
!
! Stores the value of a digital quantity on the specified ! Stores the value of a digital quantity on the specified
! local Dv object. ! local Dv object.
! The complete name of the Dv object has to be supplied; ! The complete name of the Dv object has to be supplied;
......
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Store Integer parameter. Used in run time to write in ! Store Integer parameter. Used in run time to write in
! integer parameters. ! integer parameters.
! ! @image orm_stoip_fo.gif
!
! Stores, after truncation, the value of an analog ! Stores, after truncation, the value of an analog
! quantity ( e.g. output signal of the type pwr_tFloat32) ! quantity ( e.g. output signal of the type pwr_tFloat32)
! on the specified 32-, 16-, or 8-bits integer parameter ! on the specified 32-, 16-, or 8-bits integer parameter
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_io.h ! @Code rt_plc_macro_io.h
! Store counter input. ! Store counter input.
! ! @image orm_stopi_fo.gif
!
! Analog input value is stored, after integer ! Analog input value is stored, after integer
! transformation, in RawValue in specified local Co ! transformation, in RawValue in specified local Co
! object. ! object.
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
! when a connection is created from a string output. The object will ! when a connection is created from a string output. The object will
! be transformed to its final appearence when it is connected to a ! be transformed to its final appearence when it is connected to a
! string value or attribute. ! string value or attribute.
! @image orm_stosgeneric_fo.gif
!*/ !*/
! !
SObject pwrb:Class SObject pwrb:Class
......
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
! @Code rt_plc_macro_string.h ! @Code rt_plc_macro_string.h
! Store String parameter. Used in run time to write in ! Store String parameter. Used in run time to write in
! string parameters. ! string parameters.
! ! @image orm_stosp_fo.gif
!
! Stores a string value in specified string ! Stores a string value in specified string
! attribute in a local object. The receiving ! attribute in a local object. The receiving
! attribute may not concern a pointer. ! attribute may not concern a pointer.
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_string.h ! @Code rt_plc_macro_string.h
! Storage of string value. ! Storage of string value.
! ! @image orm_cstosv_fo.gif
!
! Storage of a string value on a specified ! Storage of a string value on a specified
! local Sv object. ! local Sv object.
! !
......
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
! @Code rt_plc_macro_string.h ! @Code rt_plc_macro_string.h
! @Summary Concatenate two strings. ! @Summary Concatenate two strings.
! Concatenate two strings. ! Concatenate two strings.
! ! @image orm_strcat_fo.gif
!
! The Strcat object appends the string of the second input to ! The Strcat object appends the string of the second input to
! the string of the first input. ! the string of the first input.
! !
......
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
! @Code rt_plc_macro_grafcet.h ! @Code rt_plc_macro_grafcet.h
! Grafcet step representing an underlying sequential ! Grafcet step representing an underlying sequential
! chain, a sub-sequential chain. ! chain, a sub-sequential chain.
! ! @image orm_substep_fo.gif
!
! From a functional point of view, we can look upon the ! From a functional point of view, we can look upon the
! object as a sub-sequential chain that has been ! object as a sub-sequential chain that has been
! substituted by the SubStep object. ! substituted by the SubStep object.
......
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
! @Code rt_plc_macro_string.h ! @Code rt_plc_macro_string.h
! @Summary Extract a substring from a string. ! @Summary Extract a substring from a string.
! Extract a substring from a string. ! Extract a substring from a string.
! ! @image orm_substr_fo.gif
!
! The SubStr extracts a substring from at string at the specified ! The SubStr extracts a substring from at string at the specified
! offset and with the specified length. ! offset and with the specified length.
! !
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_arithm.c ! @Code rt_plc_arithm.c
! Summator. ! Summator.
! ! @image orm_en1-225.gif
!
! Weighted summing unit for up to 8 inputs. Used inputs ! Weighted summing unit for up to 8 inputs. Used inputs
! have to be chosen consecutively with beginning from ! have to be chosen consecutively with beginning from
! In1, which is the upper input. ! In1, which is the upper input.
...@@ -19,6 +20,22 @@ ...@@ -19,6 +20,22 @@
! Each input has its own weighting factor, FVect0, FVect1 ! Each input has its own weighting factor, FVect0, FVect1
! etc. ! etc.
! A constant value, Const, can be added to the sum. ! A constant value, Const, can be added to the sum.
!
! Example
!
! 1. To calculate 2.2 + IN1 + 2 IN2 - 1.5 IN3
! - Mark the three first inputs Used in a Sum object
! - Connect the three inputs
! - Set Const = 2.2
! - Set the weighting factors FVect to 1.0, 2.0 and -1.5
!
! 2. To calculate the average of 5 signals
! - Mark the five first inputs Used in a Sum object
! - Connect the five inputs
! - Set the weighting factors FVect to 0.2
!
! 3. The following objects accumulate the value of an analog signal.
! @image orm_en1-226.gif
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Sum $ClassDef 234 Object Sum $ClassDef 234
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! A Curve object interpolates in a table specified by a ! A Curve object interpolates in a table specified by a
! Table object. ! Table object.
! ! @image orm_table_fo.gif
!
! The table has to consist of at least 2 of up to 50 ! The table has to consist of at least 2 of up to 50
! possible pairs of numbers (x,y). ! possible pairs of numbers (x,y).
! The x-values have to be arranged in an increasing ! The x-values have to be arranged in an increasing
...@@ -22,6 +23,36 @@ ...@@ -22,6 +23,36 @@
! !
! The object contains only data without any executable ! The object contains only data without any executable
! code. ! code.
!
! Examples
!
! Example 1
!
! Assume a valve with a strong non-linear characteristic
! between control signal and flow. To improve the performance
! at a wide operational range it is possible to let the control
! signal from a Pid object pass a Curve object before it feeds
! the actuator. The Table object is to realize a characteristic
! inverse to that of the valve.
!
! Example 2
!
! Positioning forward/backward + analog reference to specify
! the speed. Positional error greater than 10 will result in
! a maximum speed of 100. Positional error less than 2 will give
! a minimum speed of 10. Positional error between 2 and 10 gives
! linear speed in the interval 10 and 100.
!
! The positional error ( position - set value) is connected to a
! Curve object. A Table object with 4 pairs of numbers is needed:
!
! X1 = -10 Y1 = 100 X2 = -2 Y2 = 10
! X3 = 2 Y3 = 10 X4 = 10 Y4 = 100
! @image orm_en1-228.gif
!
! Example 3
! @image orm_en1-229.gif
! Square signal.
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Table $ClassDef 236 Object Table $ClassDef 236
......
...@@ -16,12 +16,20 @@ ...@@ -16,12 +16,20 @@
! !
! The only difference between Frame, Head, Text, and ! The only difference between Frame, Head, Text, and
! Title is the default values of the attributes. ! Title is the default values of the attributes.
! ! @image orm_en1-79.gif
! They are used in Document objects where, for instance, ! They are used in Document objects where, for instance,
! Title specifies what the configuration is doing, i.e. ! Title specifies what the configuration is doing, i.e.
! the function. ! the function.
! Sub-functions are named by Head objects. ! Sub-functions are named by Head objects.
! Frame and Text are used to information of details. ! Frame and Text are used to information of details.
!
! Hints
!
! A well-done PLC program ought to contain not only objects necessary
! to the computer execution but also objects whose purpose are to make
! the program more easy to understand to later readers. See figure below.
! @image orm_en1-82.gif
! Title, Head and Text Objects Make the Program Easy to Read.
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Text $ClassDef 237 Object Text $ClassDef 237
...@@ -44,6 +52,7 @@ SObject pwrb:Class ...@@ -44,6 +52,7 @@ SObject pwrb:Class
!/** !/**
! The attribute influence the appearance of the text. The ! The attribute influence the appearance of the text. The
! following values are used: 0, 1, 2, 3. ! following values are used: 0, 1, 2, 3.
! @image orm_en1-80.gif
!*/ !*/
Object TextAttribute $Intern 2 Object TextAttribute $Intern 2
Body SysBody Body SysBody
...@@ -53,6 +62,7 @@ SObject pwrb:Class ...@@ -53,6 +62,7 @@ SObject pwrb:Class
!/** !/**
! Specifies if the text is to be surrounded by a some ! Specifies if the text is to be surrounded by a some
! kind of frame. ! kind of frame.
! @image orm_en1-81.gif
!*/ !*/
Object FrameAttribute $Intern 3 Object FrameAttribute $Intern 3
Body SysBody Body SysBody
......
...@@ -11,13 +11,15 @@ ...@@ -11,13 +11,15 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_logic.h ! @Code rt_plc_macro_logic.h
! Off-state or reset delay. ! Off-state or reset delay.
! ! @image orm_timer_fo.gif
!
! When the input becomes ! When the input becomes
! !
! TRUE the output is set. ! - TRUE the output is set.
! FALSE the timer is started. After the time TimerTime ! - FALSE the timer is started. After the time TimerTime
! the output will be reset. ! the output will be reset.
! ! @image orm_en1-231.gif
!
! Compare with the Wait object. ! Compare with the Wait object.
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
......
...@@ -11,16 +11,27 @@ ...@@ -11,16 +11,27 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_arithm.c ! @Code rt_plc_arithm.c
! Time integrator. ! Time integrator.
! ! @image orm_timint_fo.gif
!
! A curve f(t) is supposed to be made up of a large ! A curve f(t) is supposed to be made up of a large
! number of rectangular sections, each with a width ! number of rectangular sections, each with a width
! ScanTime and a height Int. The output varies in ! ScanTime and a height Int. The output varies in
! accordance with both magnitude and duration of the ! accordance with both magnitude and duration of the
! input. The output is proportional to the time integral ! input. The output is proportional to the time integral
! of the input. ! of the input.
!
! ActVal(t) = ActVal(t-1) + In(t) * ScanTime / TimFact
!
! where 1 / TimFact is the integrating rate.
! !
! With the z-input it is possible to clear the ! With the z-input it is possible to clear the
! integrator. ! integrator.
! @image orm_en1-235.gif
!
! Example
!
! Suppose In is in litres / min. If we want ActVal to be
! in litres TimFact will be equal to 60 seconds /min.
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Timint $ClassDef 239 Object Timint $ClassDef 239
......
...@@ -16,12 +16,21 @@ ...@@ -16,12 +16,21 @@
! !
! The only difference between Frame, Head, Text, and ! The only difference between Frame, Head, Text, and
! Title is the default values of the attributes. ! Title is the default values of the attributes.
! ! @image orm_en1-79.gif
!
! They are used in Document objects where, for instance, ! They are used in Document objects where, for instance,
! Title specifies what the configuration is doing, i.e. ! Title specifies what the configuration is doing, i.e.
! the function. ! the function.
! Sub-functions are named by Head objects. ! Sub-functions are named by Head objects.
! Frame and Text are used to information of details. ! Frame and Text are used to information of details.
!
! Hints
!
! A well-done PLC program ought to contain not only objects necessary
! to the computer execution but also objects whose purpose are to make
! the program more easy to understand to later readers. See figure below.
! @image orm_en1-82.gif
! Title, Head and Text Objects Make the Program Easy to Read.
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Title $ClassDef 240 Object Title $ClassDef 240
...@@ -44,6 +53,7 @@ SObject pwrb:Class ...@@ -44,6 +53,7 @@ SObject pwrb:Class
!/** !/**
! The attribute influence the appearance of the text. The ! The attribute influence the appearance of the text. The
! following values are used: 0, 1, 2, 3. ! following values are used: 0, 1, 2, 3.
! @image orm_en1-80.gif
!*/ !*/
Object TextAttribute $Intern 2 Object TextAttribute $Intern 2
Body SysBody Body SysBody
...@@ -53,6 +63,7 @@ SObject pwrb:Class ...@@ -53,6 +63,7 @@ SObject pwrb:Class
!/** !/**
! Specifies if the text is to be surrounded by a some ! Specifies if the text is to be surrounded by a some
! kind of frame. ! kind of frame.
! @image orm_en1-81.gif
!*/ !*/
Object FrameAttribute $Intern 3 Object FrameAttribute $Intern 3
Body SysBody Body SysBody
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_grafcet.h ! @Code rt_plc_macro_grafcet.h
! A Grafcet transition condition. ! A Grafcet transition condition.
! ! @image orm_en1-236.gif
!
! If the transition condition (see below) is satisfied, ! If the transition condition (see below) is satisfied,
! and every step object (i.e. an object by the type Step, ! and every step object (i.e. an object by the type Step,
! InitStep, or SubStep) directly connected to the input ! InitStep, or SubStep) directly connected to the input
...@@ -27,12 +28,14 @@ ...@@ -27,12 +28,14 @@
! parent object. The status of the conditional window ! parent object. The status of the conditional window
! is stored in the Trans object by means of a SetCond ! is stored in the Trans object by means of a SetCond
! object in the window. ! object in the window.
!
! 2 directly in a combinational circuit connected to the ! 2 directly in a combinational circuit connected to the
! left horizontal part of the symbol (see T4 in figure ! left horizontal part of the symbol (see T4 in figure
! 3-55 on p. 3-366). ! 3-55 on p. 3-366).
! 3 !
! the condition is set as always TRUE ( Cond = 1 ) or ! 3 the condition is set as always TRUE ( Cond = 1 ) or
! always FALSE ( Cond = 0 ) at the configuring. ! always FALSE ( Cond = 0 ) at the configuring.
!
! To the vertical line of the symbol step objects are ! To the vertical line of the symbol step objects are
! connected. When status is transferred it is always from ! connected. When status is transferred it is always from
! the step/s/ that precede the Trans object to the ! the step/s/ that precede the Trans object to the
...@@ -50,6 +53,18 @@ ...@@ -50,6 +53,18 @@
! At reset of a sequential chain ( see the description of ! At reset of a sequential chain ( see the description of
! InitStep, are neither the Man flag nor the ! InitStep, are neither the Man flag nor the
! OpCond flag is cleared. ! OpCond flag is cleared.
!
! Example
! @image orm_en1-237.gif
! Transition Condition with Different Types of Conditions.
! Parallel Sequences
!
! In figure Transition Condition with Different Types of
! Conditions. Parallel Sequences the thick vertical lines
! indicate that the transition conditions T5, T6, and T7
! have underlying conditional windows. The transition
! condition T4 has its transition condition directly
! accessible.
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Trans $ClassDef 242 Object Trans $ClassDef 242
......
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
! @Code rt_plc_drive.c ! @Code rt_plc_drive.c
! Valve positioner with two states, i.e. on-off action ! Valve positioner with two states, i.e. on-off action
! and operation time supervision. ! and operation time supervision.
! ! @image orm_en1-238.gif
!
! The two operating states, here named OPEN and CLOSE, ! The two operating states, here named OPEN and CLOSE,
! can be interpreted as full on or full off, open or ! can be interpreted as full on or full off, open or
! closed etc. The operation order OrderOpen is either ! closed etc. The operation order OrderOpen is either
...@@ -23,52 +24,70 @@ ...@@ -23,52 +24,70 @@
! stopped between the two operating states. ! stopped between the two operating states.
! One of three operating modes, LOCAL / MANUAL / AUTO, is ! One of three operating modes, LOCAL / MANUAL / AUTO, is
! selected by means of the input signal Local and the ! selected by means of the input signal Local and the
! output signal ManMode in the following way: ! output signal ManMode in the following way:
! ! @image orm_en1-239.gif
! LOCAL Used at operation from for example an outer !
! operator's console, switching equipment, etc. ! LOCAL
! !
! · Only the safety interlockings, SafeOpen and ! Used at operation from for example an outer
! SafeClose, are taken into account. ! operator's console, switching equipment, etc.
! · LocalOpen has a spring back push button
! function. It sets OrderOpen to TRUE when
! activated.
! !
! · LocalClose has a spring back push button ! - Only the safety interlockings, SafeOpen and
! function. It resets OrderOpen when ! SafeClose, are taken into account.
! activated. !
! · At the changes, ! - LocalOpen has a spring back push button
! function. It sets OrderOpen to TRUE when
! activated.
! !
! -- LOCAL --> AUTO AutoOpen is concerned. ! - LocalClose has a spring back push button
! -- LOCAL --> MANUAL OrderOpen remains unaffected. ! function. It resets OrderOpen when
! activated.
!
! - At the changes,
! -- LOCAL --> AUTO AutoOpen is concerned.
! -- LOCAL --> MANUAL OrderOpen remains unaffected.
! !
! MANUAL/AUTO ! MANUAL/AUTO
! · Both production and safety interlockings are !
! concerned. ! - Both production and safety interlockings are
! concerned.
! !
! · The alarms are indicators that do not ! - The alarms are indicators that do not
! influence the operation order unless they ! influence the operation order unless they
! are connected to some interlocking signal. ! are connected to some interlocking signal.
! · In MANUAL mode OPEN/CLOSE request is handled !
! by the operator by means of the attributes ! - In MANUAL mode OPEN/CLOSE request is handled
! ManOpen respectively ManClose. ! by the operator by means of the attributes
! ManOpen respectively ManClose.
! !
! In AUTO mode OPEN request is done when ! In AUTO mode OPEN request is done when
! AutoOpen is TRUE; CLOSE when AutoOpen is ! AutoOpen is TRUE; CLOSE when AutoOpen is
! FALSE, i.e. not at any edge but on the ! FALSE, i.e. not at any edge but on the
! levels. ! levels.
! !
! · The changes, ! - The changes,
! -- AUTO -> MANUAL, do not influence the ! -- AUTO -> MANUAL, do not influence the
! operation order OrderOpen. ! operation order OrderOpen.
! !
! -- MANUAL -> AUTO. If the operation order was ! -- MANUAL -> AUTO. If the operation order was
! set in MANUAL operating mode and AutoOpen is TRUE, ! set in MANUAL operating mode and AutoOpen is TRUE,
! the operation order remains set after the transition, ! the operation order remains set after the transition,
! otherwise not. ! otherwise not.
! !
! If there are conflicting requests the request with the ! If there are conflicting requests the request with the
! highest priority wins; see below. ! highest priority wins; see below.
! @image orm_en1-241.gif
!
! Example
!
! Pump with a valve
! @image orm_en1-242.gif
! At request to start the pump shall the valve first open
! and then the pump start.
!
! @image orm_en1-243.gif
! At flushing the valve has to be opened, and this is done
! by means of the Dv- signal 'Spola'.
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Valve $ClassDef 246 Object Valve $ClassDef 246
......
...@@ -11,12 +11,13 @@ ...@@ -11,12 +11,13 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_logic.h ! @Code rt_plc_macro_logic.h
! On-state or set delay. ! On-state or set delay.
! ! @image orm_wait_fo.gif
!
! The time starts on a leading edge on the input. When ! The time starts on a leading edge on the input. When
! the time TimerTime expires and if the input still ! the time TimerTime expires and if the input still
! remains TRUE the output is set. It is cleared as soon ! remains TRUE the output is set. It is cleared as soon
! as the input becomes FALSE. ! as the input becomes FALSE.
! ! @image orm_en1-245.gif
! Compare with Waith. ! Compare with Waith.
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_logic.h ! @Code rt_plc_macro_logic.h
! On-state or set delay with hold function. ! On-state or set delay with hold function.
! ! @image orm_waith_fo.gif
!
! The time, TimerTime, starts on a leading edge on the ! The time, TimerTime, starts on a leading edge on the
! input and is measured by a counter. ! input and is measured by a counter.
! The countdown is disabled as long as the h(o)ld-signal ! The countdown is disabled as long as the h(o)ld-signal
...@@ -21,6 +22,16 @@ ...@@ -21,6 +22,16 @@
! When the time TimerTime expires and if the input still ! When the time TimerTime expires and if the input still
! remains TRUE the output is set. It is cleared as soon ! remains TRUE the output is set. It is cleared as soon
! as the input becomes FALSE. ! as the input becomes FALSE.
!
! Example
!
! In this example TimerTime is 5 seconds which gives
! TimerCount the value 250.
!
! @image orm_en1-247.gif
! As seen in this illustration the function is exactly as
! in a Wait object, with the exception of a set hld-signal
! freezing the down counting.
!*/ !*/
SObject pwrb:Class SObject pwrb:Class
Object Waith $ClassDef 250 Object Waith $ClassDef 250
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
! @Version 1.0 ! @Version 1.0
! @Code rt_plc_macro_logic.h ! @Code rt_plc_macro_logic.h
! Exclusive Or Gate. ! Exclusive Or Gate.
! @image orm_xor_fo.gif
! !
! The output is FALSE when the inputs are equal and TRUE ! The output is FALSE when the inputs are equal and TRUE
! when the inputs are different. ! when the inputs are different.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment