AT is a fairly old fashioned way of declaring variables which point at hardware addresses (%I, %X, %M, %Q). If you are using ABB Automation Builder, this mechanism is also redundant(!) and you should not use it since the V3.5 hardware tree editor will let you declare variables directly in the V2 hardware. After starting up V2.3 editor the declared variables from the V3.5 hardware tree are automatically available as GLOBALS in V2.3 editor.
Same works in reverse,if you declare a global, you can select them up in the V3.5 Hardware tree editor as IO(!), and no AT %* necessary :-)
Other OEM's may have implemented different tricks to help you declare IO variables for V2.3 based hardware varies.
I've read all of these in the past , sadly there's no answer to my questions in these documents.
Thanks for the reply.
I've seen that part, it only shows the hardware IO declaration. What I'm asking is if I could see the empty moemory blocks or where my unaddressed variables go in the memory.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
What I'm asking is if I could see the empty memory blocks or where my unaddressed variables go in the memory
Yes you can ask such detailed statistics but I don't remember where you could ask this. It has been a long time since I used v23.
To be honest, why should/would you care WHERE your variables are place in the memory? It is of little importance unless you are using something like MODBUS or such?
Last edit: hermsen 2021-10-03
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
My client wants to recieve every data on my system through Modbus TCP for their SCADA, for that I need the addresses but I didn't define them in the first place. So I'm just trying to locate them instead of defining 500 variables again.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Create a memory map in Excel and give the variable addresses, e.g. in the program via Shift + F2. You'll have order. You can't give your client dynamic addresses even if you know them. After all, they can change.
Last edit: maszsc 2021-11-14
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm new to programming, so my question is when I define a variable like this,
Variable_A: REAL;
and don't add the "AT" to pick an address for it. What happens to this variable? Where can I see the assigned address after I compile the program?
Is there a place where I can see the avaible addresses?
Btw I'm using ABB's automation builder.
here is a getting started with ABB AC500 V2 manual (codesys v23 based hardware)
https://library.abb.com/d/3ADR010649
there is also a getting started for AC500 v3 hardware (Codesys v35 based)
https://library.abb.com/d/3ADR010584
Last edit: hermsen 2021-10-02
I've read all of these in the past , sadly there's no answer to my questions in these documents.
AT is a fairly old fashioned way of declaring variables which point at hardware addresses (%I, %X, %M, %Q). If you are using ABB Automation Builder, this mechanism is also redundant(!) and you should not use it since the V3.5 hardware tree editor will let you declare variables directly in the V2 hardware. After starting up V2.3 editor the declared variables from the V3.5 hardware tree are automatically available as GLOBALS in V2.3 editor.
Same works in reverse,if you declare a global, you can select them up in the V3.5 Hardware tree editor as IO(!), and no AT %* necessary :-)
Other OEM's may have implemented different tricks to help you declare IO variables for V2.3 based hardware varies.
I've read all of these in the past , sadly there's no answer to my questions in these documents.
-> https://library.abb.com/d/3ADR010649 See page 16 and 17, it explains what I explained above. Please read the manual again(!)
With kind regards
Last edit: hermsen 2021-10-02
Thanks for the reply.
I've seen that part, it only shows the hardware IO declaration. What I'm asking is if I could see the empty moemory blocks or where my unaddressed variables go in the memory.
What I'm asking is if I could see the empty memory blocks or where my unaddressed variables go in the memory
Yes you can ask such detailed statistics but I don't remember where you could ask this. It has been a long time since I used v23.
To be honest, why should/would you care WHERE your variables are place in the memory? It is of little importance unless you are using something like MODBUS or such?
Last edit: hermsen 2021-10-03
My client wants to recieve every data on my system through Modbus TCP for their SCADA, for that I need the addresses but I didn't define them in the first place. So I'm just trying to locate them instead of defining 500 variables again.
Please read up on MODBUS TCP Client/Server for AC500 in their help.
Good luck.
Create a memory map in Excel and give the variable addresses, e.g. in the program via Shift + F2. You'll have order. You can't give your client dynamic addresses even if you know them. After all, they can change.
Last edit: maszsc 2021-11-14