Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 4 Next »

Connector Status

There are couple of ways users can create a program to get the status of a connector and setup alarms. Here, we'll show you how to get the variable status that you can then use for logic and configure alarm.

One option is to add connector ref on the equip. The second option would be to create a string point that will have the connector ref. Both options will be covered below.

ConnStatus via Equip or Site

The goal is just to have a reference of a connector in the db so that it can be visible as an alarm somewhere on the hierarchy. So it doesn't matter if its on a site, floor, or equip. Also, only one reference per connector is needed otherwise, there will be multiple alarms of the same connector.

BACNET: To do the below automatically for bacnet connectors since in most cases, each connector is usually one equip. Run this query in folio: readAll(point and bacnetConnRef).each x=> readById(x->equipRef).diff({connStatusRef:x->bacnetConnRef}).commit()

In cases where a bacnet connector is being used by multiple equips, go through those and remove the extra ones so that you don't get multiple alarms for the same thing.

HAYSTACK: For haystack connectors, you can add them to the site instead of equip because in most cases, its for an entire site. If, there are multiple for a single site, then it would be best to add them on the equip level.

First, the user will select an equip they would like to use to get the connector ref. It can be any equip. Then add a connRef property tag to it like below. Then drag the connector to that property to assign it to it.

Then create a program that runs on that equip only or if you have multiple equips for multiple connectors, then run it on those. When creating the program, don't select any points, all you need to do is select "Tags" because we will be using a tag from the connRef we added. Should look something like below when creating. We did it based on "equip and connRef" because we only have one.

Because "Tags" option was selected, the user will be prompted with the below pop up to add additional tags based on available refs on the equip. Since we added 'connRef', it will appear in the drop down for the user to select from. Once selected, the user will see available tags from the connector they can use. In this case, we want the connector status, so we'll select "connStatus" tag and finish creating the program.

  

From there, the user will now have the variable available to use in logic. It can be something like IF the status is not "ok", then set a boolean variable to true and use that for the alarm etc.

Below is a copy of the program the user can upload that contains the logic and alarms setup. Also added the dis variable so that the users will be able to know which connector it is in case they have multiple of them. The program is called "connStatusProgramEquip". Also added couple screenshots in case you would like to create it yourself.

BACNET version if wanted. 

The reason we used to check if its not 'ok' and 'down' is because when its down, it doesn't necessarily mean that is bad. Its just means that there is nothing keeping it in watch so its asleep until viewing the data by opening equip or graphic, or having points historized from that connector etc. This is only for Bacnet connectors. If you have a database with bacnet and/or haystack connectors, we recommened to add the second "Any Connector" version.

    

Any Connector version. The program is called "connStatusProgramEquip". Runs on "(equip or site) and connRef".

   

ConnStatus via Custom Point

With this version, we recommend to create a new equip that will contain newly creating virtual string points, which in turn those will have the connRef instead of on the equip. So create a new equip and string point. Add a "connRef" property tag on the point like below and drag the connector to that property to assign to it. Make sure to also tag it as "allowProgram" and "connStatusPoint". What 'allowProgram' does is it will allow the point to be used in logic builder, otherwise you won't be able to use it. 'connStatusPoint' is just a generic tag to make sure the program only runs on these connector status points. IF you would also like to see the value of being the status of the connector on the point, then make sure the point is writable as well so that the program can write to it. It should look like something below before creating the point.

Then create the program that runs on the point(s). Below is an example of how it would look like. We are running the program on "point and allowProgram and connStatusPoint". Then just hit create.

Then once the program editor is open. On the right menu select "Add Variables" and the below pop up will appear. The name is "connStatus" because that is the tag on the connector we are looking for. Next is the binding and it is optional unless you know what it would be. In this case, its "id==$connRef" because its saying what is it we are looking based on the current target. In this case "id" is the target and "connRef" is the property on the point we are using. The rest should be like below.

Thats it, now you have the variable to create the logic. 

Below is a copy of the program the user can upload that contains the logic and alarms setup. Also added the dis variable so that the users will be able to know which connector it is in case they have multiple of them. As well as curVal so that we can write to the point. The program is called "connStatusProgramPoint". Also added couple screenshots in case you would like to create it yourself.

BACNET version if wanted. 

The reason we used to check if its not 'ok' and 'down' is because when its down, it doesn't necessarily mean that is bad. Its just means that there is nothing keeping it in watch so its asleep until viewing the data by opening equip or graphic, or having points historized from that connector etc. This is only for Bacnet connectors. If you have a database with bacnet and/or haystack connectors, we recommened to add the second "Any Connector" version.

     

Any Connector version. The program is called "connStatusProgramPoint". Runs on "point and allowProgram and connStatusPoint".

   

Haystack Device Status

There are cases where customers would like to know if certain devices in Niagara are down. In this case, its difficult to tell since they all come in under one haystack connector in FIN Stack and its not necessarily the status of the connector, but the devices in Niagara Network or Bacnet Network etc. So to create a program to check if any of those devices are down would be to create a program that runs on a point from each device. That way if the one of those points is down, you'll know which device it is even though the FIN Stack connector is 'ok'. To set this up, follow the below.

First the user will tag one point from each device that they know won't change like being renamed or moved etc. The tag in our example is "deviceStatus" so in this case tag the choose point as "deviceStatus" and "allowProgram".

Then create the program to run on the those points. It should look like something below.

Then create a new variable from the "Add Variable" from the right menu. We want to add the curStatus of the point. Then we use that in logic to trigger the alarm based on the status of the point.

Below is a copy of the program the user can upload that contains the logic and alarms setup. Also added the dis, equipNavName, siteNavName, and navName variables so that the users will be able to know which site, floor, equip, and point it is in case they have multiple of them. The program is called "deviceStatusProgram". Also added couple screenshots in case you would like to create it yourself.

    

So all the user has to do if they upload the program is make sure the point is tagged correct as mentioned above and it should work. Remember, only do one point per device.


  • No labels