BACnet

9 Posts
3 Users
0 Likes
57 Views
(@j.becker@pcvue.de)
Posts: 0
New Member Guest
 

Hi all,

could any of you give me an advice, how to read a special priority of the priority array.
I can write and reset via SCADA and I can map the string-array on a text – var. But how to get out one special priority. Is there maybe a function, like for “Bitstring(x)”

Thank you in advance

 
Posted : 20/09/2016 6:08 pm
n.kunzer
(@n-kunzerarcinfo-com)
Posts: 1236
Member Moderator
 

Hi Johannes,

If you want to map only 1 priority you can't. The only way is to request an improvement adding the Priority_Array type in the Fields (Variable Advanced properties).

Waiting for, you could map a text on the priority array, create an event and extract the priority you need by scada basic.

Nico

 
Posted : 23/09/2016 6:22 am
(@j.becker@pcvue.de)
Posts: 0
New Member Guest
 

this is what I was afraid of. ;-).

problem is that we are connecting siemens-devices and they have "implemented" the "manual-mode" of a component (e.g. pump) by checking the out_of_service, overwritten properties and also the prio-array 7 (modul-man) and 8 (scada-man).

So in fact for every component on every change of value, I have to perform a scada basic.
Setting to auto-mode, I also have to perform a scada-basic. (resetting prio-array).
:silly: :silly: :silly:

Am I the only one with this kind of requests?

I will add a dev-request for that.

thank you again.

 
Posted : 23/09/2016 1:01 pm
n.kunzer
(@n-kunzerarcinfo-com)
Posts: 1236
Member Moderator
 

Hmmm i dont really understand why you have to do that!
I don't know what they mean by "manual-mode" but the Bacnet device must set the present-value with the most priority in the priority-array.

Can you describe the behaviour of this "manual-mode"?

Nico

 
Posted : 23/09/2016 2:36 pm
(@j.becker@pcvue.de)
Posts: 0
New Member Guest
 

e.g. the pump is controlled by the plc-program (pid or something else) by writting the present-value into the priority-array "12". So it is in the automatic-mode. If from SCADA we manually switch on the pump, a hand is raised and an alarm. Therefore we write into the priority-array "8". that means the SCADA-user switch on manually the pump. The same is e.g. if someone is on the machine and switches the pump on directly. He writes then into prio-array "7" (Emergency-switch into "1", and so on). Only if prio-array "12" is set and nothing else, the component is in auto-mode. To get back to auto-mode, we have to reset the priority array. So the plc-program can write into "12" again.

And to know, in wich mode we are and by whom it was set, we have to read the prio-array.

Hope it is clear?

 
Posted : 23/09/2016 2:47 pm
n.kunzer
(@n-kunzerarcinfo-com)
Posts: 1236
Member Moderator
 

Hi Johannes,

Yes it's clear.
I suppose the auto-mode information is a Binary-Output or equivalent.
But, in my point of view, this reset Array job must be done by the device itself and not by the scada. That's the bacnet concept. We will have again to make a development to fix a lack of feature from the device...

But, anyway, even if we make this development it will not solve your problem. If we continue with your example, to check if you must reset or not you will have to map 1 variable for each Array priority that supposed to be set meaning 7, 8, and 12 (and maybe more) + an event for each. Multiplying this by the number of pump...not so nice.
Better keeping the event directly on the complete array.

If you want we could continue talking about on Skype as I guess it is too detailed for the forum.

Nico

 
Posted : 23/09/2016 3:14 pm
f.martin
(@f-martinarcinfo-com)
Posts: 148
Member Admin
 

Hello,

A typical Local/Remote/Auto priority management behavior 😉

You already have the SCADA Basic instruction BACNET with the modes RESET_PRIORITY and WRITE_PRIORITY. I guess you already know and use them 😉
@Nico: The SCADA should handle the the priority 8 value, and only this one, for setting it or resseting it. You can decide from the SCADA to switch from Remote to Auto mode, it means that the SCADA has to reset the priority 8.

What you need is to know which priority is currently "active".
I'm not sure about it, but you could have a look to the property "priority" (ID 86) of your BACnet object. If I'm correct, it will return 7, 8 or 12, but it may not be a mandatory property.

 
Posted : 23/09/2016 7:52 pm
(@j.becker@pcvue.de)
Posts: 0
New Member Guest
 

Thank you, i will check it next week.

 
Posted : 23/09/2016 8:03 pm
(@j.becker@pcvue.de)
Posts: 0
New Member Guest
 

hi, if anybody faces the same problems, I have built (together with some changes from Jerome in BACnet) solution for that as a AA-Template.

it is a monster construction of 40 variables, SCADA Basic and expressions, but it works like it should work in BACnet environments.

So please ask me if needed.

 
Posted : 04/07/2017 4:30 pm