Siemens S7 315 2PN/DP PNIODIAG

cjd1965

Lifetime Supporting Member
Join Date
Apr 2007
Location
UK
Posts
1,659
Hi
I am trying to determine the loss of profibus slaves using the PNIODIAG block from Siemens website.
It says the default DB is DB200 that is created at PLC startup however I had to define it in OB100 before it was generated.

Due to poor/no documentation where is my status info in DB200? I only have the PLC at address 2, a MP370 HMI at address 3 and a ET200S at address 4 and want to determine if the ET200S has been powered off / is unobtainable. What is the required OUT1 parameter?
I have put this into OB1,OB82,OB83,OB86,OB100

CALL "PNIODiag" , DB126
IN0 :=200
OUT1:=

but all the bits i can see in DB200 dont seem to change when i remove the ET200 from the network

A sample of a working program or an alternative method would be appreciated

Cheers
 
Last edited:
Hi toplink is where i downloaded it lol

bottom link means exploring i think.

some advice of whether out1 needs defining and what the db200 bits are for nodes 3 and 4 are

Cheers
 
Last edited:
the PNIODIAG package is designed to use the WinCC flexible project. If you are just looking to get connected/disconnected status I would use SFC51.

Check out the manual System Software for S7-300/400 System and Standard Functions to find which SSL-ID needs to be put in to read the status you are looking for.

Index will be your module address in hex
 
I have the same issue !! Can't make this PNIODIAG to work !! Once I ran the HMI main screen appears a error code "150080B1" with a message to send an email with the DBs !

Can't believe someone will actually respond from Siemens !!

Have you use this SFC51 for CPU315F-2 DP ?
 
I've used SFC51 with 0C75 SSL-ID which is "Communication status between the H system and a switched DP slave" to detect IM153-2 failures (2 per IO rack)

I'm sure it can be done. You need to grab the "System Software and Standard Functions" download it here

Take a look at page 33-67. The diagnostic address is the address in the hardware config, you will need to convert it to hex.

DR on the block will use a pointer to where you created your data records. I would create a test DB, and also create a structure in that DB then create your records from the PDF within that structure.

Play around with it, I found it helpful to set everything up in a VAT table or monitor online and disconnect the cable or unplug the module. I'm guessing within one of those bytes there is a bit you can access that will tell you if the slave has failed or not.


Good luck
 
Last edited:
Right on, thanks !! I'll take a look and see if I make this thing work !

One thing though, do I need to call the SFC51 in all the interrupt OB's (OB82, OB83...) or just in the OB1 ?

I mean, I don't need to monitor continuosly the status, so I thought if I call the SFC in the OB1 I can make a little routine that only enables to read the status whenever I need to know (example, a button in the HMI as "Network Status")....

Thanks once again !
 
Last edited:
Just OB1 will work fine or you could put it in the 1 second cyclic OB to remove some overhead, or even try putting it in OB86 (Failure of an expansion rack, DP master system or station for distributed I/Os) or OB87 (Communication error)

Give it a shot
 
Alright !!!! Thank you all for the help !! I finally made this PNIODIAG work !!

It's actually pretty simple after of course spend 2 full days working on it... Here's what I'm using:

1- CPU315F-2DP (315-6FF01-0AB0) ***NOTE that the firmware HAS to be higher than 3.0, otherwise, forget it about, WON'T WORK !

2- 4 IM-151HF, where I have some motor-starters hooked up, and all the I/O's on Profibus

3- 12 ABB drives ACS550 (on Profibus)

WinCC Flexible 2008 SP2

Total, are 16 nodes in the Profibus


I had to call the FB126 (PNIODIAG) in the:
OB1, OB100, OB82, OB86 (OB83 is NOT supported in the CPU315, so you don't need to setup this OB)

The default visualization uses the DB200... if you like to change it, in the FB126 call would be:

CALL FB126,DB126
IN0:=220 (or whatever DB # you like)
OUT0:= (leave it in BLANK, none!)

*Also if you change the default DB#, don't forget to change the TAG's in the WinCC Flexible to match the desirable one.

Put the CPU in STOP mode, download ALL the program, block and HW... and after the warm-restart should be it !!

If you get a wierd error message in the main screen of the visualization (like I posted before), you problably have something wrong with the DB200 structure.... Make sure to match with the Flexible Tag's !!!

After everything working, it's a very nice tool and way to monitor the Profibus status and details.... Recommended !!
 
OB82 header has enough data to determine if fail was in dp system, what slave it was that failed and if it failed or did come back online. No need for sfc.
 
Hi TurboUpo
Do you have an example or link to how to retreive slave status in ob82?

thanks
 

Similar Topics

Controller 315-2pn/dp installed on the bridge crane. Sometimes (1 time in a week or often) change its condition from RUN to Stop mode. I have...
Replies
15
Views
3,591
Hello to all. I'm trying to configure the ModBus connection between 315-2PN/DP and Sentron 3200 pack, but without success .. I can not even...
Replies
2
Views
2,591
Dear Sir, I have faced a problem in SIEMENS PLC CPU 315-2PN/DP,the PLC is not communicating with the SCADA.I have called a service engineer,he...
Replies
2
Views
1,876
Dear All, May I know if anybody here has a set-up like this? A siemens CPU315-2DP communicating with Siemens BW500 Belt weigher integrator over...
Replies
4
Views
2,361
Hi all! I am doing communication in two S7-300 PLCs CPU 315-2PN/DP After connecting the Profibus connector to both CPUs, one CPU (Slave) is giving...
Replies
25
Views
13,388
Back
Top Bottom