Moving large quantit of data TIA Portal

swedeleaner

Member
Join Date
Dec 2013
Location
Göteborg
Posts
143
Hey guys!!

I have never used ANY-pointers or configured larger areas to be moved.

As you see, i want to copy whats inside DB1, 256 byte long and send to Q256.

Q256 is an Anybus-module. (It has to be configured but just want to confirm that the data is sent correctly)

I have no chance to test it right now, and the compiler seems to like it.
Is this how you copy large amounts of data between different areas in TIA Portal?

:)

Namnlös.jpg
 
To move that much data to a PROFINET slave device, I think you will have to use the DPRD_DAT and DPWR_DAT blocks.

Check the system manual section 8.3.5
 
Thanks!

Love this forum, always helpful people that shares their experience. I will check BLKMOVE, maybe it does the trick in a simpler way. I saw there was also a function, POKE_BLK. When is POKE a suitable option?
 
I have used blkmove with success, however the most that I have moved is 99 integers at a time, and it was within the same block.

I would think it will work for your application.
 
I guess i just have to try.. :)

Along with some bits and two integers there is a String, 20 charachters long.
When declaring the String it automatiskt allocated +200 bytes.

Is there a way to limit the string to say, 30 charachters and minimize the data needed?
 
I guess i just have to try.. :)

Along with some bits and two integers there is a String, 20 charachters long.
When declaring the String it automatiskt allocated +200 bytes.

Is there a way to limit the string to say, 30 charachters and minimize the data needed?

If you declare the tag as String, then it uses 255 characters as the default. 1 byte for the max length, one byte for the used length, and the rest reserved for characters. If you declare it as String[30], then it will only allocate space for 30 chars, plus the two bytes of header.

Mike, the block size was 352 bytes with no issues reported. I'm sorry, I don't understand "within the range".

In a 300/400, the PLC one buffers a certain amount of IO in the process image. Often, this limit s set to 256 bytes, but it can be adjusted to a certain maximim based on teh CPU.

In the 1200/1500 families, the entire IO address area is set to the Process Image by default, so no changes need to be made.
 
To move that much data to a PROFINET slave device, I think you will have to use the DPRD_DAT and DPWR_DAT blocks.

Check the system manual section 8.3.5

As you stated elsewhere other blocks like Block Move are possible while in the Process Image.

The big advantage of DPRD_DAT and DPWR_DAT is that they perform a similar function for the peripheral IO, the devices outside the Process Image. It also allows for immediate writes to the IO devices, whether inside or outside the Process Image.

You can also access the IO outside the PI by using PIW type statements instead of the usual IW type. However, this can only be done in 1/2/4 byte chunks. If you need to write larger chunks at one time, the blocks above are necessary. Because they perform an immediate write, maintaining consistency is important.
 
mk42, if you are referring to the process-image input area and process-image output area sizes as set in the CPU's Cycle/Clock Memory property tab, they are both set to 2000. The CPU was a IM154-8FX PN/DP firmware v3.2. And the robot I/O was within that range.
 
Hey guys!!

I have never used ANY-pointers or configured larger areas to be moved.

As you see, i want to copy whats inside DB1, 256 byte long and send to Q256.

Q256 is an Anybus-module. (It has to be configured but just want to confirm that the data is sent correctly)

I have no chance to test it right now, and the compiler seems to like it.
Is this how you copy large amounts of data between different areas in TIA Portal?

:)

People have mentioned some good options in the thread so far. I'll add one more. It looks like you're working in a 1500, and this response will only work in the new gen PLCs, and only if you have V13 SP1 or newer (or maybe plain V13? I can't recall).

You can also define a custom data tyoe, matching the data you want to send. This data type can be used as a structure in the DB, and can be applied to the IO (creat a tag of that custom data type as the bit Q256.0 and it will fill in the rest for you). Then you can simply use a normal MOVE from one to the other. This is my favorite way, as it makes the tags super easy to reference in the program.
 

Similar Topics

I'm a Siemens person, and this is one of my first AB programs. The customer wants everything programmed in Ladder. I have a lot of data (3...
Replies
14
Views
205
Hello, I have a compact Logix plc and I have been task with configuring alarms into our SCADA when an Analog signal stops moving. The analog...
Replies
6
Views
233
Hello, i am a beginner with a Siemens Logo 8 PLC. I would determine the direction of an object if it passes a whole cycle of 2 input sensors. See...
Replies
2
Views
175
Can an AOP be removed from Logix? I seem to have some version weirdness from an E&H AOP and I need to see if reinstalling the AOP will correct it.
Replies
5
Views
945
I'm making a meal of this, my brain's not in gear. Also, I'm new to S7 TIA/WinCC so excuse my ignorance... See redacted pic. Pressing F7 (SAVE...
Replies
10
Views
3,208
Back
Top Bottom