Commit dcad4301 authored by claes's avatar claes

imaged and examples included

parent ec0befd9
......@@ -8,6 +8,7 @@
!/**
! @Version 1.0
! @Code rt_plc_macro_logic.h
! @image orm_aarithm_fo.gif
! Optional programmable arithmetical expression in the C
! programming language. The expression is edited by means
! of the Attribute Editor at the object's Expression
......@@ -15,8 +16,8 @@
! is translated at the compilation.
! The Expression attribute is shown in the object.
!
! Up to 8 analog ( A1, ..., A8) and 8 digital ( d1, ...,
! d8) inputs.
! Up to 8 analog ( A1, ..., A8) and 8 digital ( d1, ...,d8)
! inputs.
! Digital inputs may be inverted either by means of the
! Attribute Editor, or by the logical operator '!' in the
! Expression attribute.
......@@ -37,10 +38,10 @@
! Mathematical functions in the C programming language
! can be used, for instance:
!
! _ exp(A1) exponential function
! _ log10(A1) base-10 logarithm of A1
! _ sin(A1) sine of A1
! _ (1.2E3 + A1) * ( A2 + 3.7 ) arithmetic, note the constants.
! - exp(A1) exponential function
! - log10(A1) base-10 logarithm of A1
! - sin(A1) sine of A1
! - (1.2E3 + A1) * ( A2 + 3.7 ) arithmetic, note the constants.
! - fabs( A1) absolute value
! - pow(A1, A2) A1 rasied to the A2-th power.
! - there is an often used conditional operator, '?', in
......@@ -50,6 +51,14 @@
! (d1 && d2) ? A1 + A2 : A3, means that VAL = A1+ A2,
! 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
! DArithm, which calculates the value of logical
! expressions.
......
......@@ -9,6 +9,7 @@
! @Version 1.0
! @Code rt_plc_arithm.c
! Time delay of an analog signal.
! @image orm_adelay_fo.gif
!
! The time delay Tim can vary within the interval:
! { 0 - 100 x MaxCount x ScanTime }
......@@ -34,6 +35,17 @@
! signal is stored in shift register position 1.
! The output signal is fetched from the register
! 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
Object Adelay $ClassDef 3
......
......@@ -12,6 +12,7 @@
! @Code rt_plc_macro_logic.h
! AND-gate for up to 8 inputs. Used inputs do not have to
! be chosen consecutively.
! @image orm_and_fo.gif
! The basic symbol has 2 inputs. By means of the
! Attribute Editor the number of inputs can be changed
! and individual inputs be inverted.
......
......@@ -13,7 +13,7 @@
! @Summary Expands the number of analog attributes that can be handled in a DataArithm.
! The ApCollect object expands the number of analog attribues that
! 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.
! 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
......
......@@ -11,7 +11,7 @@
! @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
! handled in a DataArithm object.
!
! @image orm_apdistribute_fo.gif
! 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
! the data input of the ApDistribute to an data output of a DataArithm,
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_sup.h
! Analog Supervisory.
! @image orm_asup_fo.gif
!
! Supervises an analog quantity in an arbitrary object in
! regard to deviation above or below the alarm limit.
......@@ -35,10 +36,10 @@
! activities.
!
! 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
!
! · INFO If the message demands an acknowledgement
! INFO If the message demands an acknowledgement
! this is sent to the info part of the alarm
! window from, where it can be acknowledged
! otherwise only to the event list.
......@@ -60,9 +61,9 @@
! acknowledgement can be done too.
! 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.
! · PRINTER : The select list is defined by an
! - PRINTER : The select list is defined by an
! attribute in an
! EventPrinter object.
!
......@@ -73,6 +74,7 @@
! received.
!
! Hints
!
! The supervised quantity may belongs to an arbitrary
! object. This means not only signal objects but also
! other objects may supervised; e.g. attributes in a
......@@ -83,6 +85,8 @@
! configured outside PLC program, then it is done by the
! Configuration Editor and
! 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
!
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_string.h
! Convert analog value to string.
! @image orm_atostr_fo.gif
!
! The AtoStr object converts the value of the analog input to
! at string stored in ActVal.
......
......@@ -12,6 +12,7 @@
! @Code rt_plc_macro_logic.h
! Points out a data segment in rtdb where the items will
! be backed up on a file.
! @image orm_backup_fo.gif
!
! If the segment pointed out by the Backup object was
! created in the development environment the backup may
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_io.c
! Binary Coded Decimal Digital output.
! @image orm_en1-25.gif
!
! Represents a decimal floating point number on 4 binary
! coded decimal (BCD) digits (= 16 digital signals).
......
......@@ -13,6 +13,9 @@
!
! Used when a larger description is to be done; e.g. in a
! Document object.
!
! Example
! @image orm_en1-28.gif
!*/
SObject pwrb:Class
Object BodyText $ClassDef 25
......@@ -25,6 +28,7 @@ SObject pwrb:Class
!/**
! The attribute influence the appearance of the text. The
! following values are used:
! @image orm_en1-26.gif
!*/
Object TextAttribute $Intern 1
Body SysBody
......@@ -34,6 +38,7 @@ SObject pwrb:Class
!/**
! Specifies if the text is to be surrounded by a some
! kind of frame.
! @image orm_en1-27.gif
!*/
Object FrameAttribute $Intern 2
Body SysBody
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_logic.h
! 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 object's Code attribute.
......@@ -21,6 +22,14 @@
! Attribute Editor, or by the logical operator '!' in the
! Code attribute.
!
! 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
......
......@@ -13,6 +13,12 @@
! type of physical Ai-card. The conversion from signal
! 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
! function s, sensor polynomial p and filter function f
! according to,
......
......@@ -15,15 +15,15 @@
!
! SigValue is converted to ActualValue via sensor
! function s, table t and filter function f according to,
! ActualValue = f ( t( s(SigValue) ) ) , where
! the choice of
!
! -- sensor function s, is determined by
! SensorTypeCode
! ActualValue = f ( t( s(SigValue) ) ) , where the choice of
!
! -- sensor function s, is determined by SensorTypeCode
! -- 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:
! @image orm_en1-32.gif
!
! - Direct input of NoOfCoordinates pairs of numbers (InValue,O
! arranged in order of increasing InValue. The first
......@@ -48,13 +48,11 @@
! SigValue:
!
! If SigValuemin <= s(SigValue) >= SigValuemax , then
! - the index n is calculated as SigValue s(SigValue)
! < SigValue n
! n+1
! t( s(SigValue) ) = Intercept(n) + Slope(n)  s(igValue)
! - the index n is calculated as SigValue(n) = s(SigValue) < SigValue(n+1)
! t( s(SigValue) ) = Intercept(n) + Slope(n)* s(SigValue)
! otherwise, t( s(SigValue) ) = OutValue for the first
! or the last pair of numbers depending on s(SigValue)
! < s(SigValuemin) or s(SigValuemax) > s(SigValue )
! or the last pair of numbers depending on
! s(SigValue) < s(SigValuemin) or s(SigValuemax) > s(SigValuemax)
!
! As the menu handling is not implemented yet we manually
! put in, for each NoOfCoordinates, the corresponding
......
......@@ -12,6 +12,13 @@
! Configures an analog output channel independent of the
! 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
! the output is based on FixedOutValue. Otherwise TestOn
! will settles which attribute the output is based on.
......
......@@ -12,6 +12,12 @@
! Configures a digital input channel independent of the
! 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.
! InvMask1 and ConvMask1 to card object, but InvertOn and
! ConversionOn belongs to this object.
......
......@@ -12,9 +12,12 @@
! Configures a digital output channel independent of the
! type of physical Do-card.
!
! Figure below shows the steps in Do-signal conversion.
! ActualValue belongs to the Do object. The shadowed
! attributes are defined in a card object, the Emerg-attribut
! 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
! the output is based on FixedOutValue. Otherwise TestOn
......
......@@ -12,10 +12,12 @@
! @Code rt_plc_arithm.c
! Compares an analog value ( signal or parameter) to a high
! limit.
! @image orm_en1-36.gif
!
! Both the input signal and the limit can be either
! constants, defined by the Attribute Editor, or ordinary
! analog signals.
! @image orm_en1-37.gif
! The output is TRUE when the input signal is greater
! than the high limit i.e. Lim. The hysteresis is taken
! into account when the output signal is to be FALSE. The
......
......@@ -10,12 +10,13 @@
!/**
! @Version 1.0
! @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.
!
! @image orm_en1-38.gif
! Both the input signal and the limit can be either
! constants, defined by the Attribute Editor, or ordinary
! analog signals.
! @image orm_en1-39.gif
! The output is TRUE when the input signal is less than
! the low limit, i.e. Lim.
!
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_io.c
! Pulse counter.
! @image orm_count_fo.gif
!
! The counter can be increased, decreased, cleared or set
! equal to a present value.
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_io.h
! Conditional Storage Analog input.
! @image orm_cstoai_fo.gif
!
! Conditional storage of an analog value on a specified
! local Ai-signal (= Ai object).
......
......@@ -11,12 +11,14 @@
! @Version 1.0
! @Code rt_plc_macro_io.h
! Conditional Storage Analog output.
! @image orm_cstoao_fo.gif
!
! Conditional storage of an analog value on a specified
! local Ao-signal (= Ao object).
!
! Conditional is aimed at the con-input, which is
! supposed to be connected.
! @image orm_en1-43.gif
! The conditional input signal can be inverted by means
! of the Attribute Editor.
!
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_io.h
! Conditional Storage Analog parameter.
! @image orm_cstoap_fo.gif
!
! Conditional storage of an analog value ( parameter,
! input, or output signal) on a specified parameter in a
......@@ -30,8 +31,10 @@
! programs, to write in any of the inputs.
!
! Example
!
! At Gain-Scheduling it would be possible to use CStoAp
! objects with the analog inputs left open; see below.
! @image orm_en1-45.gif
!*/
SObject pwrb:Class
Object CStoAp $ClassDef 76
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_io.h
! Conditional Storage Analog value.
! @image orm_cstoav_fo.gif
!
! Conditional storage of an analog value on a specified
! local Av-signal (= Av object).
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_io.h
! Conditional Storage Integer parameter.
! @image orm_cstoip_fo.gif
!
! Conditional storage of an analog value ( parameter,
! input, or output signal of the type pwr_tFloat32) on a
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_string.h
! Conditional Storage of string attribute.
! @image orm_cstosp_fo.gif
!
! Conditional storage of an string value ( parameter,
! input, or output signal) on a specified attribute in a
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_string.h
! Conditional storage of string value.
! @image orm_cstosv_fo.gif
!
! Conditional storage of a string value on a specified
! local Sv object.
......
......@@ -12,6 +12,7 @@
! @Code rt_plc_macro_grafcet.h
! Conditional execution of objects located in a
! Sub-window.
! @image orm_csub_fo.gif
!
! The code in the sub-window is,
! executed if, and only if, the logical input signal is
......
......@@ -11,9 +11,11 @@
! @Version 1.0
! @Code rt_plc_arithm.c
! Interpolates in a table.
! @image orm_curve_fo.gif
!
! The table which is realized in a Table object defines
! a function curve.
! @image orm_en1-50.gif
! If the input signal is outside the range of the table
! the first/last table value is chosen as the function
! value; see above.
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_logic.h
! User-defined logical expression.
! @image orm_darithm_fo.gif
!
! Optional programmable logical expression in the C
! programming language. The expression is edited by means
......@@ -41,11 +42,19 @@
!
! 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
!
! 2 Comparison.
! 3 Comparison.
!
! Expression: (A1 + 3.5 * A2) < A3
!
......
......@@ -9,6 +9,7 @@
! @Version 1.0
! @Summary User programmable object with data inputs and outputs.
! User progammable object with data inputs and outputs.
! @image orm_dataarithm_fo.gif
!
! The object contains
! - four data inputs
......
......@@ -12,7 +12,7 @@
! @Summary Expands the number of data attributes that can be handled in a DataArithm.
! The DataCollect object expands the number of data attribues that
! 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.
! 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
......
......@@ -167,6 +167,7 @@ SObject pwrb:Class
EndBody
EndObject
!/**
! @Summary Specifies the selected filter.
! The internal filter function concerns only local
! Di-signals.
!
......@@ -175,6 +176,20 @@ SObject pwrb:Class
!
! 0 -- No filtering.
! 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
Body SysBody
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_io.c
! Digital input Binary Coded Decimal.
! @image orm_en1-55.gif
!
! Represents four binary coded decimal (BCD) digits (= 16
! digital signals) on a decimal floating point number.
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! Configures in the working area of the PLC Editor an
! area in A-format.
! @image orm_en1-56.gif
!
! By at the time of configuration of a PLC program,
! divide the working surface in Document objects and
......
......@@ -13,7 +13,7 @@
! @Summary Expands the number of Boolean attributes that can be handled in a DataArithm.
! The DpCollect object expands the number of Boolean attribues that
! 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.
! 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
......
......@@ -11,7 +11,7 @@
! @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
! handled in a DataArithm object.
!
! @image orm_dpdistribute_fo.gif
! 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
! the data input of the DpDistribute to an data output of a DataArithm,
......
......@@ -12,6 +12,7 @@
! @Code rt_plc_drive.c
! START/ STOP motor control with supervision of contactor
! response and motion guard.
! @image orm_en1-58.gif
! Three different types of interlockings:
! · safety interlocking SafeStop
! · production interlocking ProdStop
......@@ -27,6 +28,7 @@
! One of three operating modes, LOCAL / MANUAL / AUTO, is
! selected by means of the input signal Local and the
! output signal ManMode in the following way:
! @image orm_en1-59.gif
!
! LOCAL
! · Used at operation from for example an outer
......@@ -40,6 +42,7 @@
! · LocDrive has a spring back push button
! function with an opening stop function. STOP
! is also done when Local is reset.
! @image orm_en1-60.gif
!
! MANUAL/AUTO
! · Both production and safety interlockings are
......@@ -62,6 +65,53 @@
! instead of the missed input signal; i.e. it is not the
! value of ProdTim or SpeedTim itself that determines if
! 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
Object Drive $ClassDef 103
......
......@@ -17,9 +17,11 @@
! For every attribute to be plotted there has to be a
! data storage object. Attributes in the objects specify
! 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
! objects, for example to store at different frequencies.
! @image orm_en1-65.gif
! 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
......@@ -36,8 +38,8 @@
! When all elements in the buffer have got values once in
! this way, AllDataOK is set.
! 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.
! 2 via the outer signal named by the TrigName
! attribute.
......@@ -47,6 +49,7 @@
! Trigged flag has been set and stops after that. Test
! values in the buffer are frozen and the plotting is
! done in the fast graph.
! @image orm_en1-65.gif
! The sampled attribute has to be a local quantity. So,
! DsFast objects have to reside at the same node as the
! sampled attribute in the runtime environment.
......
......@@ -14,6 +14,7 @@
! In every node where fast graphs should be stored there
! has to be a DsFast job to search through the local
! DsFast objects.
! @image orm_en1-67.gif
!
! Hints
!
......@@ -27,6 +28,7 @@
! Appl object and for a VAXELN node either by an Appl
! object or is the dsFast module included in the
! EBUILD-file.
! @image orm_en1-68.gif
!
! See Also
! DsFast
......
......@@ -20,6 +20,8 @@
! to be stored, see figure 3-13. A measurant may be used
! by several different data storage objects, for example
! 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
! is finite. At present Ai-signals are sampled at 5 Hz,
......@@ -58,6 +60,8 @@
! DsTrend, DsFast, or DsHist this relation may be marked
! by putting the object direct below the current signal
! object.
! @image orm_en1-70.gif
! Configuration of a DsTrend Object
!*/
SObject pwrb:Class
Object DsTrend $ClassDef 108
......
......@@ -14,8 +14,11 @@
! In every node where trend graphs shall be stored there
! is a need for a DsTrend job which is searching through
! the local DsTrend objects.
! @image orm_en1-71.gif
! DsTrend Job with Matching Objects
!
! Hints
!
! Because a DsTrend job default is loaded to each OpenVMS
! node it is suitable to configure DsTrendConf object on
! this nodes. The DsTrendConf objects are placed below
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_sup.h
! Digital Supervisory.
! @image orm_dsup_fo.gif
!
! Supervises a binary quantity in an arbitrary object in
! regard to alarm position. CtrlPosition specifies if
......@@ -19,6 +20,7 @@
!
! The DSup object reacts in two ways when the quantity is
! in the alarm position:
!
! 1 the act-output is unconditionally set to indicate
! alarm state.
!
......@@ -32,13 +34,14 @@
! activities.
! 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
!
! · INFO If the message demands an acknowledgement
! - INFO If the message demands an acknowledgement
! this is sent to the info part of the alarm
! window from, where it can be acknowledged,
! otherwise only to the event list.
!
! An acknowledgeable info-message disappears
! from the info part of the alarm window as
! soon as it has been acknowledged without
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_string.h
! Convert digital value to string.
! @image orm_dtostr_fo.gif
!
! The DtoStr object converts the value of the integer input to
! at string stored in ActVal.
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_logic.h
! Edge detector.
! @image orm_edge_fo.gif
!
! Detecting on a leading edge of a pulse.
!
......
......@@ -29,7 +29,14 @@
! Assume a PROVIEW/R system with process graphics, from
! which attributes in rtdb are manipulated. The designer
! 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
Object ExternRef $ClassDef 116
......
......@@ -11,13 +11,23 @@
! @Version 1.0
! @Code rt_plc_arithm.c
! First Order Lag Filter.
! Symbol
! @image orm_filter_fo.gif
!
! The input signal gets an exponential smoothing.
! VAL = a * In+ (1 - a) * X = X + a (In - X) , where
! X = FeedB, if FeedB is connected, ActValt - 1, otherwise
!
! a = ScanTime / FiltCon and 0 < a < 1.0. If a >= 1.0
! 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
Object Filter $ClassDef 117
......
......@@ -16,7 +16,7 @@
!
! The only difference between Frame, Head, Text, and
! Title is the default values of the attributes.
!
! @image orm_en1-79.gif
! They are used in Document objects where, for instance,
! Title specifies what the configuration is doing, i.e.
! the function.
......@@ -34,6 +34,7 @@ SObject pwrb:Class
!/**
! Specifies if the text is to be surrounded by a some
! kind of frame.
! @image orm_en1-81.gif
!*/
Object FrameAttribute $Intern 1
Body SysBody
......@@ -72,6 +73,7 @@ SObject pwrb:Class
!/**
! The attribute influence the appearance of the text. The
! following values are used: 0, 1, 2, 3.
! @image orm_en1-80.gif
!*/
Object TextAttribute $Intern 5
Body SysBody
......
......@@ -10,6 +10,7 @@
! when a connection is created from an analog input. The object will
! be transformed to its final appearence when it is connected to a
! signal or attribute.
! @image orm_getageneric_fo.gif
!*/
!
!
......
......@@ -10,6 +10,7 @@
!/**
! @Version 1.0
! Get Analog input.
! @image orm_getai_fo.gif
!
! Fetches the engineering value for a specified Ai-signal
! from I/O-copied area. See PROVIEW/R Designer's Guide.
......
......@@ -10,6 +10,7 @@
!/**
! @Version 1.0
! Get Analog output.
! @image orm_getao_fo.gif
!
! Fetches the engineering value for a specified Ao-signal
! from I/O-copied area. See PROVIEW/R Designer's Guide.
......
......@@ -10,6 +10,7 @@
!/**
! @Version 1.0
! Get Analog parameter.
! @image orm_getap_fo.gif
!
! Fetches the value of an analog quantity (= pwr_tFloat32
! parameter, in- or output signal) in an arbitrary
......
......@@ -10,6 +10,7 @@
!/**
! @Version 1.0
! Get Analog value.
! @image orm_getav_fo.gif
!
! Fetches the engineering value for a specified Av-signal
! from I/O-copied area. See PROVIEW/R Designer's Guide.
......
......@@ -9,6 +9,7 @@
! @Version 1.0
! @Summary Get 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
! DataArithm-objects by connecting the output of the GetData
! in the plc editor.
......
......@@ -12,6 +12,7 @@
! when a connection is created from a digital input. The object will
! be transformed to its final appearence when it is connected to a
! signal or attribute.
! @image orm_getdgeneric_fo.gif
!*/
!
SObject pwrb:Class
......
......@@ -10,6 +10,7 @@
!/**
! @Version 1.0
! Get Digital input.
! @image orm_getdi_fo.gif
!
! Fetches the engineering value for a specified Di-signal
! from I/O-copied area. See PROVIEW/R Designer's Guide.
......
......@@ -10,6 +10,7 @@
!/**
! @Version 1.0
! Get Digital output.
! @image orm_getdo_fo.gif
!
! Fetches the engineering value for a specified Do object
! from I/O-copied area. See PROVIEW/R Designer's Guide.
......
......@@ -10,6 +10,7 @@
!/**
! @Version 1.0
! Get Digital parameter.
! @image orm_getdp_fo.gif
!
! Fetches the value of a digital quantity ( e.g. output
! signal from an object or internal digital variable) in
......
......@@ -10,6 +10,7 @@
!/**
! @Version 1.0
! Get Digital value.
! @image orm_getdv_fo.gif
!
! Fetches the engineering value for specified Dv-signal
! from I/O-copied area. See PROVIEW/R Designer's Guide.
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_io.h
! Get Integer parameter.
! @image orm_getip_fo.gif
!
! Fetches the value of a 32-, 16- or 8-bits integer
! parameter in arbitrary object.
......@@ -20,6 +21,17 @@
! is a pure address reference,
! contains no relevant information (=data) in rtdb,
! 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
Object GetIp $ClassDef 128
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_io.h
! Get Pulse input.
! @image orm_getpi_fo.gif
!
! Fetches the I/O-copied count value from the pulse
! counter card, i.e. RawValue from a Co object.
......@@ -21,6 +22,7 @@
!
! The name of the object is shown in the button of the
! GetPi-symbol.
! @image orm_en1-95.gif
! The GetPi object
! is a pure address reference,
! contains no relevant information (=data) in rtdb,
......
......@@ -12,6 +12,7 @@
! when a connection is created from a string input. The object will
! be transformed to its final appearence when it is connected to a
! string value or attribute.
! @image orm_getsgeneric_fo.gif
!*/
!
!
......
......@@ -10,6 +10,7 @@
!/**
! @Version 1.0
! Get String parameter.
! @image orm_getsp_fo.gif
!
! Fetches the value of a string attribute.
! The attribute can be an in- or output signal in an arbitrary
......
......@@ -10,6 +10,7 @@
!/**
! @Version 1.0
! Get String value.
! @image orm_getsv_fo.gif
!
! Fetches the value for specified Sv object.
!
......
......@@ -85,6 +85,7 @@ SObject pwrb:Class
! This means that the latest position of the window will
! be used when the window is displayed next time.
! -1, -1 specifies a default position.
! @image orm_en1-96.gif
!*/
Object X $Attribute 5
Body SysBody
......@@ -122,6 +123,7 @@ SObject pwrb:Class
! Coordinates) which portion of the Model will be
! displayed on a monitor. ( A Model are collections of
! lines, circles etc.)
! @image orm_en1-97.gif
!*/
Object GmsX1 $Attribute 8
Body SysBody
......
......@@ -12,6 +12,7 @@
! @Code rt_plc_io.c
! Converts a 16-bits Gray code value into its decimal
! equivalent.
! @image orm_gray_fo.gif
!
! The Gray code has the property that a change of the
! output signal one unit can always be accomplished by
......
......@@ -16,12 +16,20 @@
!
! The only difference between Frame, Head, Text, and
! Title is the default values of the attributes.
! @image orm_en1-79.gif
!
! They are used in Document objects where, for instance,
! Title specifies what the configuration is doing, i.e.
! the function.
! Sub-functions are named by Head objects.
! 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
Object Head $ClassDef 134
......@@ -44,6 +52,7 @@ SObject pwrb:Class
!/**
! The attribute influence the appearance of the text. The
! following values are used: 0, 1, 2, 3.
! @image orm_en1-80.gif
!*/
Object TextAttribute $Intern 2
Body SysBody
......@@ -53,6 +62,7 @@ SObject pwrb:Class
!/**
! Specifies if the text is to be surrounded by a some
! kind of frame.
! @image orm_en1-81.gif
!*/
Object FrameAttribute $Intern 3
Body SysBody
......
......@@ -16,6 +16,7 @@
! / close / 0 but also with the meaning of up / down / 0
! or right / left / 0 or increase / decrease / 0 etc. The
! outputs are time-proportional to the input.
! @image orm_en1-100.gif
!
! The input signal OutChange is regarded as a control
! error. This error is transformed into a time by
......@@ -38,6 +39,8 @@
! value of Acc does not exceed the dead zone during a
! time specified by MaxTim; the integration is turned off
! at small control errors.
! @image orm_en1-101.gif
! Output Signals from an Inc3P
!
! So-called timer control, also used by Pos3P objects on
! page 3-287, is discussed in the example below.
......@@ -46,6 +49,21 @@
! DoOpen/DoClose. The outputs and the signals can be set
! by a frequency determined by the PlcPgm object. But
! 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
Object Inc3P $ClassDef 135
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_grafcet.h
! The first step in a Grafcet-chain.
! @image orm_initstep_fo.gif
!
! At least one InitStep object has to be included in
! every sequential chain.
......@@ -40,6 +41,22 @@
! 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
! 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
Object InitStep $ClassDef 136
......
......@@ -11,7 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_logic.h
! Logical inverter.
!
! @image orm_inv_fo.gif
! Inverts a logical signal.
!*/
SObject pwrb:Class
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_string.h
! Convert analog value to string.
! @image orm_itostr_fo.gif
!
! The ItoStr object converts the value of the integer input to
! at string stored in ActVal.
......
......@@ -12,10 +12,11 @@
! @Code rt_plc_arithm.c
! Limits an analog signal up/downwards and signals if a
! limitation has taken place.
! @image orm_limit_fo.gif
!
! The limits Max and Min may be external signals or
! adjustable parameters.
!
! @image orm_en1-108.gif
! The input signal may be fixed while one or both limits
! are variable.
! If one of the limits is not wanted the input signal may
......
......@@ -20,6 +20,113 @@
! found in PROVIEW/R Designer's Guide. Most standard
! lists are a compound of several lists, each controlled
! 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
Object ListDescriptor $ClassDef 143
......@@ -95,6 +202,16 @@ SObject pwrb:Class
! objects arranged in several levels this attribute will
! 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
! done on all levels below the selected hierarchy and
! FALSE if the searching is to be limited to the first
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_arithm.c
! Max/Min selector.
! @image orm_maxmin_fo.gif
!
! The Maxmin object chooses the highest respective lowest
! current value among up to 8 input signals where the
......
......@@ -13,6 +13,9 @@
!
! Every message handler job needs a MessageHandler
! object.
! @image orm_en1-120.gif
! Message Handler (Mh) Jobs in Different Nodes with their MessageHandler Objects
!
! If any MessageHandler object is not explicitly
! configured to a node it will likewise be created in the
! runtime system. In this case the attributes are
......
......@@ -12,6 +12,7 @@
! @Code rt_plc_pid.c
! Used to select control modes (MANUAL / AUTO / CASCADE)
! or forced control of Pid objects.
! @image orm_en1-121.gif
!
! The control modes are:
! · MANUAL -- when the 'operator' sets the output of the
......@@ -222,13 +223,20 @@ SObject pwrb:Class
!
! = 1 MANUAL. The operator selects the control signal
! 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
! 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
! 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
Body SysBody
......
......@@ -12,6 +12,7 @@
! @Code rt_plc_drive.c
! Motor valve positioner with three operating states and
! supervision of operation time and contactor response.
! @image orm_en1-123.gif
!
! This object is similar to the Valve object but can
! furthermore be stopped in a continues order, i.e.
......@@ -23,19 +24,44 @@
! By means of the operation time supervision it is
! possible to detect if the final control element is
! stopped between the two operating states.
!
! One of three operating modes, LOCAL / MANUAL / AUTO, is
! selected by means of the input signal Local and the
! output signal ManMode in the following way:
! @image orm_en1-124.gif
!
! In AUTO mode AutoOpen/AutoClose-request remains as long
! as the operation has to continue, else the motion stops
! in some intermediate position.
! If there are conflicting requests the request with the
! highest priority wins; see below.
! @image orm_en1-125.gif
!
! Contactor alarm, Alarm5 or Alarm 6, stops current
! operation. A new order resets the alarms and initiates
! 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
Object MValve $ClassDef 159
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_logic.h
! OR-gate.
! @image orm_or_fo.gif
!
! OR-gate for up to 8 inputs. Used inputs do not have to
! be chosen consecutively.
......
......@@ -11,7 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_grafcet.h
! A Grafcet order.
!
! @image orm_en1-131.gif
! To every sequential step one or more Order objects can
! be connected.
! Activities ( e.g. StoDo, ResDv, And, Or, Wait objects)
......@@ -72,6 +72,62 @@
! as parent object.
! Opposite to an activity window a conditional window is
! 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
Object Order $ClassDef 166
......
......@@ -12,6 +12,7 @@
! @Code rt_plc_macro_grafcet.h
! Fetches from an activity window the status of an
! associated Order object.
! @image orm_orderact_fo.gif
!
! An order list is executing as long as the step, to
! which the order belongs to, is active or the order ( if
......
......@@ -14,6 +14,7 @@
! varies in the time. The binary output has a
! pulse-proportional relay action in the dead zone, if
! MinOut < MaxOut, else on/off-action with hysteresis.
! @image orm_en1-135.gif
!
! The digit 2 in the object name comes from the output
! which may have two distinct values with a two-step
......@@ -21,6 +22,28 @@
! meaning of open / closed, forward / backward, or right
! / 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
Object Out2P $ClassDef 168
......@@ -129,7 +152,7 @@ SObject pwrb:Class
Attr graphindex = 0
Attr default_mask[0] = 1
Attr default_mask[1] = 1
Attr segname_annotation = 0
Attr segname_annotation = 1
Attr compmethod = 4
Attr compindex = 0
Attr executeordermethod = 2
......@@ -146,3 +169,12 @@ SObject pwrb:Class
EndObject
EndObject
EndSObject
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_pid.c
! Implements the robust PID control algorithm.
! @image orm_en1-141.gif
!
! In the normal case the Pid object is used together with
! the Mode object. The Mode object plays the part of an
......@@ -40,6 +41,149 @@
! To handle and adjust the controller there are two more
! info forms containing e.g. a time diagram with process
! 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
Object PID $ClassDef 174
......@@ -561,6 +705,7 @@ SObject pwrb:Class
!/**
! Specifies the hysteresis on MinOut and MaxOut in
! connection with the handling of EndMin/EndMax.
! @image orm_en1-144.gif
!*/
Object EndHys $Intern 47
Body SysBody
......
......@@ -12,6 +12,7 @@
! @Code rt_plc_io.c
! Translates a pulse counter value into an engineering
! value, e.g. position, volume etc.
! @image orm_en1-162.gif
!
! Suppose the engineering value is a position. The actual
! position is then calculated at every scanning by means
......@@ -24,6 +25,7 @@
! saved position, PosCal1, at calibration point 1. The
! Gain factor is either specified or calculated by means
! of a second calibration point, calibration point 2.
! @image orm_en1-163.gif
! How to carry out the calibrations is described below
! under Calibration.
!*/
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_arithm.c
! Derivative a pulse Pi-signal.
! @image orm_pispeed_fo.gif
!
! Converts a pulse signal, e.g. volume to flow, distance
! to velocity, etc.
......
......@@ -28,11 +28,19 @@
! takes place.
!
! Hints
!
! The buttons 'Trend' and 'Fast' in the operator
! environment display both lists of those PlotGroup objects
! ( or graphs) that are available on the node independent
! of the user. Which list a specific PlotGroup object
! 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
Object PlotGroup $ClassDef 178
......
......@@ -21,6 +21,7 @@
! PosFlank specifies which ActualValue transition that
! will initiate a pulse. If a positive or negative pulse
! is generated depend on PosPulse.
! @image orm_en1-171.gif
!
! ActualValue is handled e.g. from application programs
! by the system call: gdh_SetObjectInfo(...)
......
......@@ -15,6 +15,7 @@
! the digit 3 on the fact that the output signals specify
! one of three distinct orders e.g. increase / decrease /
! 0.
! @image orm_en1-178.gif
!
! Exactly as for Inc3P it is possible to govern by means
! of the outputs Open / Close and/or the signals named by
......@@ -33,6 +34,7 @@
! dead zones specified by ErrSo and ErrSta. The dead zone
! prevents cycles from repeating to rapidly and becoming
! destructive to the equipment.
! @image orm_en1-179.gif
! The duration of the DoOpen/DoClose signals, the pulse
! length, is equal to
!
......@@ -44,6 +46,19 @@
!
! It is possible to use the outputs Open / Close and the
! 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
Object Pos3P $ClassDef 182
......
......@@ -11,13 +11,55 @@
! @Version 1.0
! @Code rt_plc_drive.c
! Positioner.
! @image orm_en1-172.gif
!
! The positioning is carried out, without any hysteresis,
! by the output signals Order1 and Order2.
! One of two operating modes, MANUAL / AUTO, is selected
! by means of the output signal ManMode in the following
! 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
Object Posit $ClassDef 183
......@@ -177,6 +219,7 @@ SObject pwrb:Class
!/**
! The values, which have to be >= 0, specify the lower and
! the upper end in the 'target' range.
! @image orm_en1-175.gif
!*/
Object DeadZone1 $Intern 11
Body SysBody
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_logic.h
! One-shot pulse with variable width.
! @image orm_pulse_fo.gif
!
! The object produces, on a leading edge on the input, a
! pulse with the duration specified by TimerTime.
......@@ -19,12 +20,14 @@
! propagating a pulse, the pulse is extended, as the
! pulse period, TimerTime, is counted from the last
! leading edge of the input signal.
! @image orm_en1-182.gif
!
! Hints
!
! If a reset function is needed instead of a pulse with a
! certain period the pulse can be realized by a Wait, And,
! Or, Edge, and a SR_R object.
! @image orm_en1-183.gif
!*/
SObject pwrb:Class
Object Pulse $ClassDef 184
......
......@@ -11,12 +11,25 @@
! @Version 1.0
! @Code rt_plc_arithm.c
! Limits a quantity's rate of change.
! @image orm_ramp_fo.gif
!
! Separate limit rates at increase respectively decrease;
! RampUp and RampDown.
! 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.
! An external signal may also be used as feedback. See example below.
!
! Example
!
! 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
Object Ramp $ClassDef 189
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_io.h
! Reset Digital input.
! @image orm_resdi_fo.gif
!
! If the input signal is TRUE, the specified local
! Di-signal is cleared at the execution, otherwise there
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_io.h
! Reset Digital output.
! @image orm_resdo_fo.gif
!
! If the input signal is TRUE, the specified local
! Do-signal is cleared at the execution, otherwise there
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_io.h
! Reset Digital parameter.
! @image orm_resdo_fo.gif
!
! If the input signal is TRUE, the value of the specified
! local digital quantity
......
......@@ -10,6 +10,8 @@
!/**
! @Version 1.0
! @Code rt_plc_macro_io.h
! Reset digital value
! @image orm_resdv_fo.gif
!
! If the input signal is TRUE, the specified local
! Dv-signal is cleared at the execution, otherwise there
......
......@@ -10,6 +10,8 @@
!/**
! @Version 1.0
! @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
! will happens.
......@@ -18,6 +20,18 @@
! located in an ordinary PLC program.
!
! 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
Object Reset_SO $ClassDef 194
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_div.h
! Fetches the scantime of the current thread.
! @image orm_scantime_fo.gif
!*/
SObject pwrb:Class
Object ScanTime $ClassDef 278
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_arithm.c
! Selects one out of two analog quantities.
! @image orm_en1-193.gif
!
! The selected value is controlled by a binary quantity
! in the following way:
......
......@@ -12,11 +12,14 @@
! @Code rt_plc_macro_grafcet.h
! Stores, in the associated object, i.e. an Order or
! Trans object, the status of a conditional window.
! @image orm_setcond_fo.gif
!
! A conditional window is used by Trans objects and Order
! objects with C-order attribute. For instance, the
! 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
! PLC program executes.
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_io.h
! Set Digital input.
! @image orm_setdi_fo.gif
!
! If the input signal is TRUE, the specified local
! Di-signal is set at the execution, otherwise there will
......
......@@ -11,6 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_io.h
! Set Digital output.
! @image orm_setdo_fo.gif
!
! If the input signal is TRUE, the specified local
! Do-signal is set at the execution, otherwise there will
......
......@@ -11,7 +11,7 @@
! @Version 1.0
! @Code rt_plc_macro_io.h
! Set Digital parameter.
!
! @image orm_setdp_fo.gif
! If the input signal is TRUE, the value of the specified
! local digital quantity
! ( 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