ABB OperateIT Help

P

Thread Starter

Pete G

I have just started working on a project which is utilising OperateIT as the HMI. And have found that the manuals supplied with the software are lacking (put nicely)in substantial detail when it comes to the syntax and function set for the SLGMS graphics package.

Can anyone point me in the right direction to any sources of information about OperateIT SLGMS that they may have found on the net?
 
Was http://www.sl.com any help to you?

We're now in final factory test phase of our OperateIT system. I have been working on the Grafx, and the lack of documentation is driving me mad.
 
Can you specify the documentation you want. Perhaps I can help you.

// Magnus H
ABB Automation Tech
 
Need a list (documentation) of all commands used in 'Dynamic' definitions. Examples:
tcolor
stext
and all function calls:
SetAt2()
ShowOne().

We have been around and around on this issue with people at ABB. The long and the short of it, is that the easiest way to do the more complicated dynamic graphics is to use the commands and function calls to program the submodel. But these commands and functions are apparantly 'undocumented', you just have to know them.
As you are probably aware, the Grafx manual is a useless waste of paper.
If you know of deeper documentation on the Grafx product, please let me know.
Thanks!
 
If you are having trouble getting information from ABB regarding SLGMS commands then it is because they don't have it. I suspect that the product development teams would know the ins and outs but not even ABB's project engineers have access to anything more than customers do.

I found the best way to work it out was to poke around in the system submodels for examples of how the commands were used. Another lead was to open opw.exe or grafx.exe using a text editor and look for text in all the code. I found the list of possible commands and then looked for examples of ones that seemed interesting.

You probably won't get much help from the SLGMS source because I think most of the commands are custom compiled into ABB (ex EB) products.
 
Michael,
I've just been through customizing faceplates and submodels on our OperateIT B1.1 system.
ABB had one Grafx guru in Ohio that helped me get started, but he had nothing written down; he just knew how it worked from years of experience.
I would say at this time about 20% of our grafx objects are based on his work, the rest are objects that I have built from scratch or modified from the standard ABB submodel/faceplate.
The custom function calls like 'ShowOne' still drives me crazy, but I can usually get the graphic object to work the way I want it to without getting too complicated. Some examples of custom submodels that we have running now are: Digital Motor (two types), Digital Valve (two types), Analog Valve, Analog Motor; also custom faceplates for all of the above, and a custom faceplate for the OPC Extended Analog object. We also have submodels for an analog value on a process graphic, with and without the Engineering Units, that changes color/flashes depending on the alarm limits and the acknowledge status. Also have a 'Digital Alarm' submodel that will show user-defined text on a graphic when the tag's value is a '1'. ("HIGH LEVEL" for example). That one also changes color based on priority and flashes depending on ack. status.
My experience with new submodels is that there is a lot of trial and error involved to get the graphics to work properly. Bugs me that ABB does not have a standard library of more useful submodels.
Let me know if you are doing anything similar, and I can send you our submodels and let you see how they work.

Allen
 
S
Hi Allen,

We also started with Operate IT B1.1 and currently are in the design phase for the submodels. (migration from Infi90)
The missing doc is driving us crazy!!!
Basic info like string handling or displaying parts of a string is missing completely...
Parameter description for function calls also...
But the DynProp syntax doc must exist somewhere! We don't have the time for trial and error poking.
Would appreciate if you could share your submodels with us.

Greets from Lux: -Serge-
[email protected]
 
I've worked on SL-GMS for quite a few years and the best way to achieve complex submodels is to use VBScript not the standard Bailey functions. VBScript is alot more flexible and powerful and it works. There are some examples in the OperateIT Examples folder. You will still have to do some sorting out to get the functions you need though.
 
S
This sounds good. Didn't know that VBS would work on submodels. Could you please indicate where this OIT Example folder is located... couldn't find it...

regards,
-Serge-
 
C

Chris Jennings

Obviously you can't use VBScript with the older systems like Conductor NT 4.

I am currently trying to work out how to make a generic submodel for a
DDRIVE block that has reference to other tags on it.

e.g. a pump has a tag name the same as the fuse number W66-120
it also has the following other tags W66-120-SOK, W66-120-POK, W66-120-IOK,
W66-120-F-B, W66-120-AUT

I can't work out how to make a call to a submodel that only requires me to
specify the first bit of the tag ie W66-120, instead of having to make a
submodel that has references to all the 6 tags explicitly.

Any ideas?

--
Chris Jennings Ph +61(0)351360417
E/I Engineer Fax +61(0)351360540
Australian Paper Maryvale Mob +61(0)407320113
 
Not true, you can use VBscript with Conductor NT. I used it a couple of years ago, just messing around with its capabilities. You have to initialize the VB portion of Grafx. It is in one of the folders supplied with Grafx. I can't rememeber which folder, but do a search in the eb/lib/ directory for *vb*. You'll have to mess around with it a bit to figure it out. Good luck.

BTW, ABB does have the list of all the functions that aren't supplied with the documentation, they just don't release that info to the public. Just like every other product they supply. Anyone that comes across that list, let me know.
 
K

Koblenz, Mykel MH

I'll second that request, and any information on the dynpropo code would be great as well. The documentation touches on dynpropo, not very well.

Mick

PS - HTML can also be used with ConductorNT
 
S
Chris,

this is possible by using the tagcat function.
Again, this is an undocumented feature by ABB..;-)
No idea what it means, maybe "Tag Combine Atom"
or "Tag Compose Atom", but I know how it works.

By declaring your model variables, do the following:
use any private name loke _pTagAtomfuse
under public name enter tagcat(TAG, TagAtomFuse)
suffix ":N" for numeric and ":S" for strings whatever value you like to display.

Calling up your submodel in a display then prompts you for TAG and TagAtomFuse
TAG would be W66-120
TagAtomFuse SOK.OUT/SIG (or whatever)

Do the same for the other values.... easy, isn't it...

Also, don't forget that you may use Submodels in Submodels. Once created a submodel for displaying TextString such as LSD or EU, you may use it in your FacePlate submodel for instance.
Only Rule, public name TAG has to be the common Variable name. When configuring it in graphics, the public name will show up only once and be propagated through the submodels used.

Not too confused now?
If you want an example, just drop me a mail

cheers from sunny Luxembourg:
Serge Simon

e-mail: [email protected]
 
R
Hi Serge,
There is a "tool tip command" that generates a message when the control is right clicked - is there one for mouse-over event?

If you have a list of commands and parameters, I would greatly appreciate a copy (I am new to OperateIT)

In addition, what do the "ButtonHilite" and "Eb2StepArm" functions do (and what are their parameters?

kind regards,
Richard
 
S
Hi Rich,

just back from vacation so it took a while to reply. There's no function other than the tool tip (right click).
The Button Hilite cmd is used for changing color of a shape when clicked.

Example: draw 2 or 3 shapes, group them, use the Dynprop code Buttonhilite followed by the colors for each shape. If you then click the shape it will change color to the ones specified in the Dynprop.

Where did you find the Eb2StepArm function? Did not use it so far.

Just got the e-doc cd from SL. Will have a look into it. (if it's worth the price)
drop me an e-mail if you wish.
[email protected]

regards:
Serge
 
R
Hi,

I noticed an interesting problem with ABB Dynamic Attributes. If you use ** for exponent, when you re-enter the Dynamic attributes at a later date, it chages ** to * *. This means when you click OK it will cause an error even if you have changed nothing.

I found making changes to Dynamic Attributes using the 'text-window' avoided this problem. CTRL-T opens text text-window. The text windows displays the graphic/submodel as raw SL-GMS code (you have to save the graphic/submodel first). My version of Grafx is 2.3.

Below is a submodel of a Bouncing Ball in SL-GMS code that uses '**', Save as 'Bouncing_Ball_2' :

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\Cut and paste the code bellow into a text-
\\window (make sure you delete any thing that is
\\in the text window first)
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


mtran0
vis 1
detect 1
Bouncing_Ball_2: model
. userdata " %#uver%#=10"
vis 0
detect 0
mcolor 7
mstyle 1
msize 1
_FP_SREFOBJ_: mark 0 0
. userdata "_FP$SN_ Mnt_sphere01"
vis 1
detect 1
inst Mnt_sphere01 0 0
. dynprop \
(* \
(redraw)) \
(__timer1 \
(= * \
(movey (Y_Span * ((sin((__timer1 * Y_Rate)) ** 2) ** 0.5))) \
(batcherase))) \
(__timer1 \
(= * \
(movex (((__timer1) - (floor((__timer1) / X_Span) * X_Span)) / X_Rate)) \
(batcherase)))
. move 0.493134 0.58951
. scale 0.493134 0.58951 0.126525 0.126525
. refpoint 0.5 0.5
renamedvars \
fill_color :: 96
endm

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


Bellow is a graphic that uses the 'Bouncing Ball2' submodel (Save as 'test'):

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\Cut and paste the code bellow into a text-
\\window (make sure you delete any thing that is
\\in the text window first)
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

mtran0
vis 1
detect 1
test: model
. userdata " %#uver%#=17"
vis 0
detect 0
mcolor 7
mstyle 1
msize 1
_FP_SREFOBJ_: mark 0 0
. userdata "_FP$SN_ Bouncing_Ball_2"
vis 1
detect 1
inst Bouncing_Ball_2 0 0
. move 8 20
renamedvars \
X_Rate :: 2 \
X_Span :: 200 \
Y_Rate :: 0.05 \
Y_Span :: 40
endm

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

You will notice the above submodels use 'C' functions like 'floor', and 'sin' (also the '__timer' variable is handy)

If someone else posts some interesting (undocumented) OPIT info, I will post some more things I have worked out (Not that I know much more :) ).

Regards,
Richard King

Email: ([email protected])

PS: I noticed there were no SL-GMS code/script examples on the web, so I though I would post the first :)
 
R
Magnus,

You do you have informatin on the Command line options for the OPIT Grafx.exe program? Can you also supply details of the ABB SLGMS functions?

Regards,

Richard
 
Top