defcon.klaxon
Lifetime Supporting Member
Hey guys,
I recently visited an existing water plant that's running a Scadapack32 with ClearScada for the HMI. I've been looking through the code to get familiar with it, as they'll be an ongoing client. One thing I've noticed is some really bizarre comments in the code and I think whoever wrote it doesn't fully grasp SCAL blocks in Telepace, but I wanted to see if maybe I'm missing something.
Here's a screen grab of the SCAL block code:
As you can see, after each SCAL block there's a timer block that is always enabled, but only accumulates if a NO contact is closed. Here's where that contact's register is a coil:
The comments as you can see mention the idea of the analog inputs having out of range bits assigned to the discrete input register block, which I believe is patently false. Every time I've done out of range checking in Telepace, it takes half a network of greater than/less than blocks. On top of all that, there's absolutely no mention of this in the Register Assignment area in Telepace.
Am I missing something about how analog inputs work in Scadapacks? I asked my Schneider rep and he told me no, that's not how they work and he thought that whoever programmed this might have been a "Modicon guy" who is confused about how SCAL blocks vs AIN blocks work.
Just wanted to make sure I wasn't missing something here and wanted to see if anyone else would agree with my rep's supposition that whoever programmed this might have been going about things as though this was a Modicon PLC. I did check some Modicon literature and the AIN block does seem to have some status registers, so I could see that as plausible.
EDIT: Did some searching around and apparently some varieties of Scadapacks *do* have register assignments for out of range checking, apparently the 314, 334 and 357 have this feature so first, maybe the programmer was confused about the Scadapack32 not having it, second it's strange my rep didn't mention this but he isn't a programmer.
I recently visited an existing water plant that's running a Scadapack32 with ClearScada for the HMI. I've been looking through the code to get familiar with it, as they'll be an ongoing client. One thing I've noticed is some really bizarre comments in the code and I think whoever wrote it doesn't fully grasp SCAL blocks in Telepace, but I wanted to see if maybe I'm missing something.
Here's a screen grab of the SCAL block code:
As you can see, after each SCAL block there's a timer block that is always enabled, but only accumulates if a NO contact is closed. Here's where that contact's register is a coil:
The comments as you can see mention the idea of the analog inputs having out of range bits assigned to the discrete input register block, which I believe is patently false. Every time I've done out of range checking in Telepace, it takes half a network of greater than/less than blocks. On top of all that, there's absolutely no mention of this in the Register Assignment area in Telepace.
Am I missing something about how analog inputs work in Scadapacks? I asked my Schneider rep and he told me no, that's not how they work and he thought that whoever programmed this might have been a "Modicon guy" who is confused about how SCAL blocks vs AIN blocks work.
Just wanted to make sure I wasn't missing something here and wanted to see if anyone else would agree with my rep's supposition that whoever programmed this might have been going about things as though this was a Modicon PLC. I did check some Modicon literature and the AIN block does seem to have some status registers, so I could see that as plausible.
EDIT: Did some searching around and apparently some varieties of Scadapacks *do* have register assignments for out of range checking, apparently the 314, 334 and 357 have this feature so first, maybe the programmer was confused about the Scadapack32 not having it, second it's strange my rep didn't mention this but he isn't a programmer.
Last edited: