AC500 Diagnosis Function Blocks

jethridge

Member
Join Date
Apr 2015
Location
Raleigh, NC
Posts
55
I'm trying to use the DIAG_GET (or something similar) function block to detect an error on an AI563 (Analog TC module). The error is class 4, a TC wire being disconnected or something like that. I can read the error using the DIAG_INFO function block, but can't seem to read it using a function block that looks to the actual module. The DIAG_INFO acts like a latch and if the error goes away, the tag is still set to TRUE until something unlatches it. Just wondering if any of you have used the DIAG_GET or IO_MODULE_DIAG function blocks.

Also, is there a way to open these standard function blocks up to look at the logic behind them? If I could see what tags/values they are looking at, I'm sure I could create my own function block.

Any help would be appreciated!
 
Most of the PLC errors are retained until you acknowledge(DIAG_ACK_ALL, DIAG_ACK), or reset (DIAG_RESET). There is typically no way to see the code on these types of function blocks. FYI, the broken wire detection did not work properly on the AI563 until version "Index A5". Previous versions did not detect a single open T/C.
 
We were looking for a way to automatically clear the PLC error when the module error is fixed. The IO_INFO and IO diagnostic function blocks looked promising, but they seem to only detect errors (class 1 and 2) and not warnings (class 3 and 4). I'd like to write our own function block that clears the CPU error when the module warning is fixed, but I'm not sure what tag or where the CPU is looking to determine if it has a class 4 warning.
 
Last edited:
Use DIAG_INFO to see if there is an error in each class. Wire the E1, E2, E3, and E4 output to the EN input of DIAG_GET(CLASS inputs required) to get details. You can then clear only a certain class if you want.
 
I've played with the DIAG_GET function block, but it doesn't seem to pick up on the class 4 warnings. I attached an image of the code I have.

DiagLogic_4_7_2015.jpg
 
I don't have something setup to go online with, but I am pretty sure I was getting Class 4 errors. I see that that FB isn't getting "Done". Expand the tree for "TestDiagGet" in the declarations section while online and see what is happening. I know that I look at both the CODE and ERROR outputs in my program.
 
I did some playing around and got the DIAG_GET to give the error. Adding DIAG_INFO.E4 as an input on DIAG_GET.EN triggered the DIAG_GET to give some feedback. However, DIAG_GET.DONE never goes to true, and the error values don't reset on the DIAG_GET function block when there is no error to display. I'm going to keep playing with it, but this is a good start. Let me know if you have any suggestions as to why the DIAG_GET.DONE bit never goes to true, or how to reset the values.
 
I can tell you that ABB doesn't follow the PLCopen standards for function block operation. Many of their EN inputs should really be labeled Execute. It needs to see a rising edge to trigger. Toggle the EN input, and the outputs should update.
 
I started the program and went online without the error. Then I disconnected a TC wire to induce the error and this is how things are. The module and CPU are currently faulted, but now the xTestError1 isn't being set to true. Thoughts?

DiagLogic2_4_7_2015.jpg
 
Playing around with the rising edge like you suggested and it worked. It reset the values after the error was cleared. Probably going to trigger the DIAG_GET.EN when the DIAG_INFO.E4 bit goes true or when the DIAG_RESET is executed. I appreciate your help!
 
I'll test that out. It's odd that the done bit never goes to true for the DIAG_GET function block.

EDIT: The done bit evidently does go true, I guess it just doesn't latch like I'm used to in Rockwell land.
 

Similar Topics

Hello all, I have an ABB PLC (PM573) and it has without MC card. I need to take backup from PLC to PC (in automation builder v2.7 ). My...
Replies
10
Views
432
Setting up a new processor as we do not have the password for the old one. I am having issues with the unit retaining the code. It will hold the...
Replies
2
Views
1,189
Good day I am currently busy with a conversion process from a ABB AC410 over to a ABB AC500. I know there is no direct way of doing this but I am...
Replies
0
Views
1,074
Well, I'm working with this ABB plc project, and It's been a learning experience coming from Allen Bradley. The project can't be changed to an AB...
Replies
1
Views
1,176
Hi. Question goes to the guys who works with ABB AC500 PLC's. Is it possible to upload the compiled code from a AC500 CPU ?. My case is that i...
Replies
1
Views
2,606
Back
Top Bottom