Friday, 9 October 2009
Tag Naming - P&ID and in ControlDraw
More than that, the tags always have some meaning, providing a clue as to the purpose and location of the instrument.
Tag naming is one of the first things you need to understand when you start a new project, because most projects have different ways of tagging.
How are Tags constructed?
Generally they have a letter prefix, a number or code, and often a suffix.
Conventionally these tagnames were allocated by instrument engineers whilst at the same time keeping a record of the used tag names in an Instrument Index. More modern CAD systems may keep the index and tags at the same time.
The ISA S5.1 ISA S5.1 standard, codes for Process Instrumentation provides a basis for the letter parts, but not for the number part, and methods of assigning these vary from company to company and even from plant to plant. You can always work out that PIC (or maybe PC) means a pressure indicating controller. But the next part, 1299 say or r123- or whatever is not obvious. Whenever I start working with P&ID I ask for the Equipment/Tagging standard, no two are the same! The standards cover much more than just instruments, for example equipment tags (R for reactor etc), the Area numbers and much more has a company standard. I get bored by the pipe naming.
One classic scheme is to number the instruments within the P&ID, and with part of the P&ID number in the tag. Often In turn the P&ID drawing number contains a higher level, say an area.
So we might have TIC3012-5 where 30 is the area, 12 indicates the twelfth PID in that area and 5 is the fifth Temperature measurement on the P&ID.
A more advanced scheme used by many practitioners is to base Tags on the Equipment number, so the Tags relate to the equipment, and even better so that if there are several similar equipment items the tags within each are the same.
For example, V3249-01 (or perhaps R3249-V01) might be the first valve in reactor R3249, V3250-01 the first valve in reactor R3250, and so on.
Some also have a standard so that similar items have similar sub-number, even in different type of equipment, for example Discharge valves are always V####-01
But when it comes to describing – or even programming – a controlled entity such as a
Unit or Equipment module, it is very useful to have some things that the classic method does not cover. One is Tagnames that are consistent within objects so when you look inside two similar objects (say 2 reactors) the Tags are the same – at least when you exclude the part that identifies which reactor. Then you only have to use nice short names. like V01 or FC02. It can save a lot of time.
Another issue is that, on an HMI, long tag names are unfriendly and clutter the screen. Yes, the best graphics have an option to not display the tagnames, but when you do show them short ones are easier on the eye. And combining Equipment based tagging with Unit relative graphics makes it possible.
The ISA letter parts have a problem - they are based on a very old concept – panel instruments.
In particular the use of the A for alarm letter has become almost a distraction. The A letter meant something in the old days, it might imply a need to use a trip amp and an annunciator lamp, things that had to be purchased. Now, everything can have an alarm, do you really want to change the P&ID because you added an alarm?
Similarly using I to show that something should be displayed? I would hope that everything should be displayable.
The reality is often that there are inconsistencies in the P&ID tag names, even when the tagging scheme is equipment based. (For example when the P&ID tagging has a shared common resource ‘inside’ the first equipment that uses it)
What’s all this got to do with ControlDraw?
ControlDraw provides several ways to handle this:
The External Tag can be set to match whatever the P&ID tag is.
Variants can often be used to reconcile inconsistent tags
Clones can be used to position an object within the P&ID Equipment but still in the right module
Scripts can extract the information from the tag and use it consistently.
Extract the meaning of the Tags with Scripts
Now, whatever the tag naming scheme, there is always some useful information contained within the tag name. And ControlDraw provides several useful ways to deploy that information. The most powerful is by using Scripts.
The Scripts can use parts of the hierarchy of tagnames, for example to set the Engineering Units according to the instrument letters.
TagPrefix0 is the first letters of the lowest level in the hierarchy of tagnames
Select Case TagPrefix0
Case "FT","FI","FIA"
CalcTag = "m3/hr"
Case "PT","PI","PIA"
CalcTag = "Bar"
Case "TT","TI","TIA"
CalcTag = "DegC"
Case "LT","LI","LIA", "CV", "FCV", "LCV","PCV", "TCV"
CalcTag = "%"
Case Else
End Select
Monday, 21 September 2009
Process Flow Sheets with ControlDraw
An example and explanation is provided in the latest Sample Models.
And of coure, like pretty well everything in ControlDraw (and unlike say Visio) the data becomes available for use in Queries and even calculations.
Tips on Drawing Diagrams
You can very quickly swap two objects by dragging one onto anotherr.
An example might be where you want to move a step in an SFC.
Normally the Swap option is only offered when the two objects have the same class but if you hold down Shift then it apples to objects of any class
If you want to centre the connections between symbols it is very easy using the Centre all connections option in the Group More menu, this will place all the connection points at the mid point of the side they are on.
Change Case
Well, just like MS Word, with ControlDraw it is easy to fix, just use Shift-F3 and the text (for example a Tagname or Object description) will toggle between Upper, Lower and the First Letter Upper and the rest lower.
Monday, 10 August 2009
Showing Instance Data on diagrams
When printing the diagram instance any "ClassFieldObject" type Special symbols on a diagram displays the values for the diagram instance.
This is useful for creating for example Instrument Specification type diagrams.
Similarly if a UserQuery contains {CurrentInstance} then the data is display for the selected instance.
Thursday, 16 July 2009
Using ControlDraw to create an Instrument Index and IO List
One simple way is to create a top level diagram that shows the process layout (for example Rooms or Plant areas) and then to place Instrument objects on the diagrams for each area/room.
In order to get the IO List, each instrument type should then be shown on a diagram containing the IO Objects. Each Instrument should be linked as a parent to the relevant Instrument Type Diagram.
It is with the more recent versions of ControlDraw very quick to create the diagrams for each area/room
So if the first diagram is a Layout like this (each has the class Unit)
You can select all and then in the Group Tool use >More >Create/Link Child Diagrams
Result
Then place instruments in each room. Make them parents of Instrument Type diagrams that contain the relevant IO
A demonstration model showing this will be published shortly
Thursday, 9 July 2009
10 Years in Business - New licensing model lower cost
This includes licenses for use on smaller projects so that smaller companies can get all the benefits of using ControlDraw at a much lower cost than before.
For example, Starter Licenses provide all the modelling that a full license provides but with limits on the overal size of the model. These are still enough for a small process cell with a couple of units defined in great detail.
There are also very cheap licenses for students and personal users.
Online purchasing is also now available.
Friday, 22 May 2009
New licensing model lower cost
Monday, 18 May 2009
Programming Equipment States Efficiently
When it comes to programming this in a Process Control System it is possible to make highly efficient and fast code by deploying the State Matrix as a data table, with the phase steps simply setting a index into the matrix. This really is far more efficient than having each step in a sequence contain all the required device settings and it becomes more efficient the more states and steps there are. The software diagram below shows how this might be done.
So, to help PLC/DCS programmers with this, the latest version of ControlDraw has added a function to generate the data table in a form that is compact and can be easily entered into a PLC or similar. It compacts all the values in the rows into as small a memory block as possible.
(Note - if PCS's had a language that supported such multi-dimensional arrays this would not be needed, however that is not something that I have in practise seen.)
View > Matrix Data Table >Matrix as Boolean for example generates the following text that you can copy to the clipboard:
Row Bool Name
0 00100 'Shutdown
1 00001 'Ready
2 01100 'Fast Fill
3 10100 'Slow Fill
4 00000 'Mix
5 00110 'Transfer
---- Mapping:
Bits required = 5
Bits 0 to 1 set EM02
Bit 2 sets em Fixed Speed Agitator
Bits 3 to 4 set em Feed
You can also generate the table as integers, hex or octal
Note - this is now part of the standard S88 Reference model library that comes with ControlDraw
Tuesday, 28 April 2009
Building the database
This shows how to build the object and instance tables from a model.
Note - it is only the first time you do this or after you change the data design that you have to build the tables in the Data Designer.
Note also how inherited fields may require that you run Update Derived fields more than once, as the values cascade down the levels of the hierarchy
Wednesday, 25 March 2009
Project manage your models
First, backups and issues
Backing up is more than just a matter of not losing your models, it is a way of taking a snapshot of a model that can be used for comparison later.
Handling Review Meetings
Before - Backup (or better raise the Issue) and save the backup in an archive (ControlDraw makes this very easy)- then review the archive, do not develop the model in a review meeting. If you want to develop the model in a meeting call it a development meeting. And backup before.
After - use reviewer to compare before and after
Next , Diagram Review Status
Each diagram in a model has a review status, which you set from the diagram details or the list of diagrams in >Database >Views
You can use these to establish the progress on each diagram.
It is also good practise to lock diagram once they have been approved, issued for implementation and so on. As well as preventing accidental change to a diagram, locking them enables the finest level of version control whereby you can unlock a diagram, edit it, and then record the changes along with the reason for them.
Automatically Filling Instance Fields
This can be done in two primary ways, Symbol Data values and Special Defaults
Special Defaults are entries that are made into the Default value when defining the fields in the Data Designer
Options are:
!Left PTag # Use the left #letters of the Symbol Tagname
!Left UserText # Use the left #letters of the Symbol User Text
!Caption Use the Symbol Caption
!AltCaption Use the Symbol AltCaption
!Inherit Obtain the value from the same named field in the parent instance
!Script Calculate a tag using a tagging script. This can use complex rules to work out a string value to enter
Symbol Data values are values set in in the Symbol Details - these set the value in the same named field in the symbol instances, overriding an other settings such as the Default value
This shows how it all works, click to enlarge
Monday, 23 March 2009
Recipe to Equipment Linking
State Based Control
Friday, 6 March 2009
Equipment v Recipe in ControlDraw
When I first had ControlDraw working properly, soon after the introduction of Version 2 and the object structure that exists to this day I dithered about whether there should be a separate Class for Equipment phases (etc) Object and Recipe Phases. I decided not to, as I found that the only difference was in their owners (in ControlDraw that is the Parent object that links to the Phase diagram,).
So, if you have a phase in a Recipe procedure that is not also in an equipment item then it must be a procedural phase, if it does exist in the equipment then it is an equipment phase. If in both then it is still an equipment phase, but is referenced by the corresponding Recipe Procedure phase.