DASSIDirect and PLC S7-400H 9wonderware)

ben_ben

Member
Join Date
Mar 2021
Location
marseille
Posts
5
Hello everyone,

I am lookimg for some help to figure out where come from the problem or what i can do to improve the latency.

PLC:
S7 416-5h redundant system
PLC is connected via Profinet to the AOS server.

this AOS is connected to different PLC all are updated value around 2-4s
but one PLC, the one who have more Items 15 000 items. Values are updated every 10s !

Archestra config :
Our vendor config, 10 Topics with interval like this
TOP01 1001 ms interval update
TOP02 1002 ms interval
TOP03 10003 ms
and so on


when I use wireshark to see what's happen, I found
that 1 request is send to PLC then after 10ms another is send,
then PLC is answer to the 1st request after 110ms then a new request is send it to PLC. all the cycle took 10s the DA server is only sending two request at the time until he got a answer to the 1st one then send a new one.

i try to understand the cause,
- why only 2 request ? is there a parameters I can set to send send more then 2 at the time.
-110ms is it fast enough for get the answer from PLC (HMI is also connect so it can slower the com)
-The interval update time setting are strange to me, doesn't it ?
- the AOS is sending 183 request to the PLC, PDU are 480 bytes in some doc they are talking that S-400 can go to 960 bytes ? any idea ? i might reduce the messages by larger PDU.
- do you know which is the best option for Cyclic Services
•Disable S7 cyclic service
• Maximum available
• Limit cyclic services to
might change something

than you in advance for your help
 
PLC is connected via Profinet to the AOS server.

What do you mean with "AOS server"?

- why only 2 request ? is there a parameters I can set to send send more then 2 at the time.

The S7 CPU may only support two requests without acknowledge. You can see the parameters of the CPU in Wireshark on "Setup connection" in the parameter "Max AmQ". But the S7 cpu only reduces the parameter if the value in the request is bigger than the supported one. If in the request is only 2, then the answer is also only 2 even if the S7 supports more.

-The interval update time setting are strange to me, doesn't it ?
Doesn't make sense to me, and also may slow down the communication, as different topics prevent the driver to opmitize the communication. For example if you have two variables with address DB1.DBD0 and another with DB1.DBD4, if they are in the same topic the driver reads DB1.DBX0.0 BYTE 8. If you have them in two different topics, I believe they are read in two different requests.

- the AOS is sending 183 request to the PLC, PDU are 480 bytes in some doc they are talking that S-400 can go to 960 bytes ? any idea ? i might reduce the messages by larger PDU.

All S7-400 I've seen so far support only 480 bytes pdus, the 960 byte I've only seen on some Sinumerik controllers. You can see the communication parameters on connection setup in Wireshark. But as with the Max AmQ parameter the S7 reduces the value only if the PDU size of the request is greater than it's supported size.

- do you know which is the best option for Cyclic Services
•Disable S7 cyclic service
• Maximum available
• Limit cyclic services to
might change something
I haven't seen settings for the cyclic services in the DASSIDirect server. But if the are supported, I'd use them as they reduce the communication load. Best use for them is to poll alarm variables.


Best way to speed up communication is to pack the variables consecutively in the smallest amount of datablocks. If the plant is running it's not easy to change. In your case I't check that similar datablock numbers aren't in different topics.
 
thank you very much for your answer,

- By AOS server i mean the Aspect Object server of Wonderware system platform.

- I searched manually the max amq i can't find it, I even used this filters s7comm.param.maxamq_called, s7comm.param.maxamq_calling but noithing appears.

- I will check with them why 11 topics and also for the interval time.

- Me too I was sure its only 480 Bytes but i dont understand why the doc tal about 960 bytes.

thank you for your help if you have any ohter suggestion thank you

i will keep you update
 
Is that a typo for topic 3 or is it actually configured for 10003ms?

You'd want your topics to have differing intervals, best practice is prime numbers around the expected update cycle. This to prevent 2 topics being called at the exact same interval.

Have you checked the server load? CPU usage? Memory usage?
Have you checked the engine statistics? Avg scan time? Scan overruns? Consecutive scan overruns? Scan idle times?
Is your system properly configured? Separate AOS with a maximum n-1 engines? Where n is the number of CPU cores? Having 2 engines run on a same core will have a devastating impact on performance.

Once these things are checked you can look at topic/item configuration. Do you have control-/status words configured or are it all separate bools? Do your EM/CM use their own separate DB or do you have large DB's containing the data of multiple objects?

Modifying the engine settings is not that much work. Setting up a new system because your hardware isn't sized properly will be more difficult. But these are still much easier to solve than if your PLC software wasn't designed properly.
 
thank you very much for you answer i tried to answer to your questions

Is that a typo for topic 3 or is it actually configured for 10003ms?

You'd want your topics to have differing intervals, best practice is prime numbers around the expected update cycle. This to prevent 2 topics being called at the exact same interval.

Have you checked the server load? CPU usage? Memory usage?

So My redundant AOS 31/32 which is slow down the value are
CPU Load : 10-20%
Memory load : 40%
Ethernert: S 400-680kps R 80-360Kpbs

for the one who is runing welle AOS21/22
CPUload : 15-20%
Memory load : 40%
ethernet: 160-300 kbps

Have you checked the engine statistics? Avg scan time? Scan overruns? Consecutive scan overruns? Scan idle times?
Is your system properly configured? Separate AOS with a maximum n-1 engines? Where n is the number of CPU cores? Having 2 engines run on a same core will have a devastating impact on performance.
how can I check those value from SMC archestra ?
VM machine are used with powerful machine

Once these things are checked you can look at topic/item configuration. Do you have control-/status words configured or are it all separate bools? Do your EM/CM use their own separate DB or do you have large DB's containing the data of multiple objects?
DB contains data of multiple object, bool, real ... when request are done i have checked with wire shark it is packed by db on some request you have different db, to around max PDU

Modifying the engine settings is not that much work. Setting up a new system because your hardware isn't sized properly will be more difficult. But these are still much easier to solve than if your PLC software wasn't designed properly.

than you for your message if you can help me how to acess to those value will be very nice !
 
These values are found in the Object Viewer.

In the ArchestrA IDE, find your engine. Right click on it and select "View in Object Viewer".
It will open the Object Viewer. In the left pane check if the correct engine is selected. In the right pane you can scroll down to find:

Scheduler.ScanCycleCnt
Scheduler.ScanOverrunsCnt
Scheduler.ScanOverrunsConsecCnt
Scheduler.TimeIdleAvg

Right click on these and select "Add to Watch". They will be displayed in the watchwindow on the bottom of the screen.

Time idle should be 20% of scan cycle time.
Overruns should be less than 0.002% of Cycle counts.
Consec overruns should be single digits.

In the left pane you can also look for your DI object which contains the Topic configuration. For the DI object you can look for:
"Topic Name".ItemCnt
"Topic Name".ItemUpdateCnt
"Topic Name".ScanMode
"Topic Name".UpdateRateCmd

Item count is nr of items configured for the DI object.
ItemUpdateCnt are the nr of items that are being updated.
ScanMode should be ActiveOnDemand. This will limit the communication to items that are on screen, contain alarms or are logged. Other items that are not shown nor logged nor contain alarms are not scanned/requested.
UpdateRateCmd is the configured topic update rate. Confirm that this is ~1000ms for each topic.
 
Thank you very much i will ask them to do it and let you know what i found !!!

these operation could be done with any impact on running engine and without deploy right ?
 
Upolading value every 10s
AOS11Scheduler.ScanCycleCnt = 190331
AOS11Scheduler.ScanOverrunsCnt = 2
AOS11Scheduler.ScanOverrunsConsecCnt= 0
AOS11Scheduler.TimeIdleAv = 891.0043

uploading data every 3s
AOS21Scheduler.ScanCycleCnt = 235269
AOS21Scheduler.ScanOverrunsCnt = 4
AOS21Scheduler.ScanOverrunsConsecCnt= 0
AOS21Scheduler.TimeIdleAv = 781.3927

20% of the scan time where is set the scan time ?

thank you
 

Similar Topics

Hello, please help me. I have big problem with communication between DASSIdirect 3 SP1 and S7-417H. I communicate over 5500 tags. There is VERY...
Replies
1
Views
3,827
For those with experience with DASSIDirect, DASS7, and S7PLC-400's: Hi, I'm new in dealing with Siemens hardware. My coworker has already...
Replies
1
Views
5,053
I have a panel PC running Wonderware, and it has the DASSIDirect server running, I am trying to get it to talk to an S7-1500 PLC but without...
Replies
14
Views
4,945
Hi, I'm having some problems with values not updating. And mainly some that are only writing but not reading although they are set to read/write...
Replies
3
Views
4,147
hi sir, i am using s7 300 and Intouch 10.6 my problem is how i convert my string tag name "P#DB130.DBX516.0 " to DASSIdirect item name? i hope u...
Replies
1
Views
2,018
Back
Top Bottom