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
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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