Member Login
member
passwd
remember me on
this computer.

- join now -
- forgot username or password? -

Search

Jump to a Date

Sponsored Communities
Cool stuff
Select a topic of interest:
...and press:
Neat Stuff
Control.com Stuff

Visit our shop for nerds in control lifestyle products.

Fortune
Minnie Mouse is a slow maze learner.
RSS Feed
RSS feed Use this link to get an RSS feed of the Control.com article flow, for private, non-commercial use only:
www.control.com/rss/
To get a personalized feed, become a member at no cost.
Select a Page Style
Select one of the following styles:
- BluFu
- Classic
(cookies required)
advertisement
from the Automation List department...
Simatic APT instruction
Application Questions and Problems topic
Posted by aan - on 16 November, 2008 - 1:01 pm
Dear Forum,
I just assigned a task to convert Simatic TI-505 which based on Simatic APT programming tools to Allen-Bradley Controllogix.

Currently, I found difficulties to translate structure text programming on Simatic APT CFC to Controllogic ladder. I would like to ask you, the simatic APT experts on this forum, what is the meaning of following instruction :

if (SS_S430=E.FAILED_SS or SS_S430=E.HELD_SS) and not(CYC_INT)
then CMD_S430.status:= CMD_S430.status or d.RESTART ;
endif;

CMD_S430 is declared as Integer with PCS tags attribute is marked
and d is recipe and referred to DISPLAY recipe template which one of it's element named RESTART.

In controllogix system, Integer variable doesn't have attribute or element like USER DEFINED DATA TYPES and as long as I know, in Simatic APT programming, variable declared as Integer doesn't have element like recipe.

Thanks in advance

Regards
Aan


Posted by Gilles Allard on 17 November, 2008 - 2:41 pm
> if (SS_S430=E.FAILED_SS or SS_S430=E.HELD_SS) and not(CYC_INT)
> then CMD_S430.status:= CMD_S430.status or d.RESTART ;
> endif;

It's a common programming technique when you want to use symbolic constants instead of numeric constants. You can do the same in ControlLogix by settings constants in UDDT instances. These 3 APT lines can be translated into a single ladder rung. Use 2 EQU boxes in series with a contact and then a bitset. (I suppose that d.RESTART is a
single bit in a word (i.e. a power of 2)). If you prefer to use the Structured Text (ST) language, use the APT statement as-is.


Posted by aan - on 18 November, 2008 - 12:24 pm
Dear Forum,

Thanks for your response Gilles.

Actually what I can't understand is: variable CMD_S430 is integer type
variable, please see imported declaration reports for CMD_S430 variable below:
 ---------------------------------------------------------------------- ------

Name: CMD_S430 Type: I Integer
*
Description: command of dry cyclone
S430
Constant: [
]
Value:
0
Eng.
Units:
Create unique status?:
[X]
PLC Address:
Automatic

----------------------------------------- -----------------------------------


as a integer type variable, CMD_S430 should have no element inside it, so how can CMD_S430 have an element called "status"?

If we compare with variable "d", "d" is a structured variable with many elements and one of them is RESTART, so we can write d.RESTART to refer "RESTART" element of variable "d". Please see APT report for mentioned variable.

------------------------------------------------ ----------------------------

Name: D Template: DISPLAY

Description:

Constant: [ ]

Data Structure Only: [ ]

Scale Factor: 1.0

Scale Low: 0.0

Scale High: 100.0

Create Unique Scale Factor: [ ]

Create Unique Hold Request: [ ]

Create Unique PLC Request: [ ]

PLC Address: Automatic



---------------------------------------------------------------------- ------
VALUE ENG.UNITS ELEMENT NAME DESCRIPTION
TYPE
0 NONE
I
16384 STOP
I
8192 PREPARE
I
4096 START
I
2048 HOLD
I
1024 RESTART
I
512 ABORT
I
256 RESET
I
128 RECIRC
I
64 FRECIRC
I
32 SPRAY
I
---------------------------------------------------------------------- ------


Posted by Allard Gilles on 19 November, 2008 - 5:10 pm
APT is object-oriented. Every data item (even a simple boolean) has a .status attribute. In basic application, the .status is an alias for the value. But if you select the "Create unique status" option, APT will create a supplementary integer to contain the status attribute. To my knowledge, that unique status has only been used by TISTAR (later renamed to PCS), a multi-user DCS (sort-of).

The purpose of setting a bit in the status attribute depends on the Tistar application. Only the 3 least significant bits have standard meanings. D.restart is bit 6 so the purpose is application related. It may be for screen animation or to communicate custom information to a batching program running in Tistar.

From Control Engineering magazine...
Related articles from Control Engineering magazine
Above articles copyright 2009 Reed Business Information. Subject to its Terms of Use.
Your use of this site is subject to the terms and conditions set forth under Legal Notices and the Privacy Policy. Please read those terms and conditions carefully. Subject to the rights expressly reserved to others under Legal Notices, the content of this site and the compilation thereof is © 1999-2009 Control Technology Corporation. All rights reserved.

Users of this site are benefiting from open source technologies, including PHP, MySQL and Apache. Be happy.

Internet Explorer 6.0 Fix

Advertisement
Our Advertisers
Help keep our servers running...
Patronize our advertisers!