Step7 large data transfer

Jeebs

Member
Join Date
Feb 2007
Location
Leuven
Posts
1,059
Hi,

Just wanna pick some brains here.

Problem:
PLC1: S7-315 with CP343
PLC2: S7-414 with CP443
PLC1 contains 12 DB's that needs to be tranferred to PLC2.

Additional info:
Sizes vary from 42 to 352 bytes with a total of 980 bytes.
PLC's are not in same project.
I have control over the S7-414, not the other one.
Step7 V5.5 is being used.

Question:
Need best solution to transfer data from S7-300 to S7-400 at 1-2 sec interval.

Option 1:
Move everything to a single, large DB.
Transfer said DB with AG_SEND/AG_RECV.
Split the data in the S7-400.(this is still being debated :D )
Seems easy enough, but the documentation says something about the length being limited to 240 bytes for the S7-400. Or should I just use AG_LRECV on the S7-400?

Option 2:
Use FB14/15 GET/PUT to transfer each DB individually.
Largest DB still fits in the 400byte FB14 limitation.

Or is there another way?
 
Use the l version on the 400 side then you can transfer up to 8192 bytes. If the 400 supports it you can also use the newer and faster ag speed receive limited to 1452 bytes but faster. You can have the speed block on the 400 side and the regular ag block on the 300 side

You can also use S7 communication with the blocks B_send or U_send

SFB/FB 12 "BSEND" sends data to a remote partner SFB/FB of the type "BRCV". With this type of data transfer, more data can be transported between the communications partners than is possible with all other communication SFBs/FBs for configured S7 connections:

· 32768 bytes for S7-300 via SIMATIC-Net CPs

· 65534 bytes for S7-400 and S7-300 via an integrated interface

With B send you can call the blocks with different r_id and use that as a "telegram number" to split the data

If this is the only communication the PLC is doing you can also set up more than one communication line in netpro and send one DB the per connection if the other side has problems with the split.
 
Using AGSend/Recive and different size of the send data make sure to use IsoOnTcp protocol or UDP protocol to get the length parameter.

UDP is faster but has less error handling but in your case if you send the same data over and over speed might be preferred if you have a solid network between the cpu's the risk of losing data is small.

UDP also handles less data than IsoOnTcp and TCP (Max 2048bytes 1452 if speed receive block)
 
The AG_send/AG_LRECV it's going to be then.
If both PLC's were under my control, I might've used different connections and done 'OnChange' comms. But the 300 is from an external partner and they've issued some limitations.

Thanks for the reply.
 

Similar Topics

Let me begin by saying that I am a PLC programming newbie. Currently I have a multi instance FB, let’s call it Robot, which I am using to...
Replies
3
Views
4,987
I need to derive the concentration of a caustic soda solution. This is done using a rather complicated polynomial calculation using input and...
Replies
23
Views
5,858
This is the first time I am working with Simatic Manager Step7 as I started my siemens journey with TIA which is pretty easy and do a lot of stuff...
Replies
3
Views
142
When you download a DB, the values get overwritten by what is in the "actual" column in offline DB. Does this happen at the start of the PLC...
Replies
6
Views
142
Hello Inside a FB, I´m trying to transfer a string from a DB to a IN_OUT var that was define as a UDT. The problem is that i can´t determine the...
Replies
4
Views
128
Back
Top Bottom