Table of Contents |
---|
Logic Builder Troubleshooting
Below are common issues customers come across when it comes to Logic Builder programs. We recommend you take a look at the following issues and see if any of them resolve your issue. If you happen to see a different error/issue, go ahead and email us.
How to find error
First, the user has to know what kind of error they have in order to know how to resolve their issue.
To find routine errors
- Navigate to the target that the program is running on and that is having the issue
- Open Logic Builder programs (You'll see red "0" on the program, indicates program running on nothing when should be)
- You can also go inside the program to select "Tasks/Programs" to open the slider to select "Tasks"
- There you will see the task summary as faulted and main routine failing
- You can also see it if you go to the Show All Targets. Now you can look below on the issue regarding routine error to resolve this.
To find program errors
- Navigate to the target that the program is running on and that is having the issue
- Open Logic Builder programs (You'll see "Error" on the program, indicates program error)
- You can also go inside the program to select "Tasks/Programs" to open the slider to select "Programs"
- There you will see the program is faulted. You can then look below on the issue regarding program error to resolve this.
To find variable errors
- Navigate to the target that the program is running on and that is having the issue
- Then select Tasks/Programs to open the slider to select "Tasks"
- Once there, the user will see all the variables they have in the program and display a varErr. They can select it to see what the error is.
- Once the user has the error open, they basically want to look at the beginning part to see what the error is and find that below in the issues list.
Issue 1: Routine Error
When the user checks what the program is running on, they'll see the below error that says something like "1 routine err". This means the program is failing on a particular routine. The cause can be empty value fields like below, so make sure to check the program thoroughly for any empty value fields to resolve this. Another reason can be mismatched tag types. For example, in the DB Builder a tag/point can be a string, but was added/configured as a number in the program. Make sure the types match.
Issue 2: Program Error
If the user sees "Error" on their program and when opening up see a "Program has errors show details" message, then their program isn't running at all. This is due to misconfigured value field property on a block. For example below, we didn't specify frequency unit like sec/min/hr etc on the condDelay block. Basically to resolve this, look through each block and make sure all is set properly. Advanced users can look at the show details and try and see if they can figure out what the error is saying so that they know where to look.
Issue 3: Variable Error
This can mean multiple different things. We'll look into each one below.
controlExt::VarBindingErr
- haystack::UnknownRecErr
- folio::CommitErr: Cannot update persistent tag transiently
controlExt::VarBindingErr
If it is a "VarBindingErr" error, then it means that the point(s) binding in that particular target that is throwing the error does not match the point(s) in the database when the program was made. To resolve this, the user has to either 1) make sure the point in DB Builder matches the binding in the program or 2) modify the point binding in the program so that it matches what the point has in DB Builder. Keep in mind doing #2 will affect the rest of the equip targets the program is running on if it doesn't match there either. Basically resolve this, you just need the point binding to match what you have in the database. If you have multiple of these var errors, then you have multiple points you'll need to check the bindings on and cross reference what you have in DB Builder.
Example Vav-02 is throwing a var error. So we select it and look at the point variables we have in there. In this case there is only one (Room Temp), we select to edit it. Then look at the binding. It looks like it has "foo" tag in it as well when our points in DB don't have that. To resolve this, we can either remove "foo" from the binding or tag all of our points in the database with "foo" and it'll work.
haystack::UnknownRecErr
If it is a "UnknownRecErr" error, then it means that the point(s) in that particular target that is throwing the error does not have those points in the database. This particular case may or may not be an issue depending on what you're doing. There are some cases where you want want to run some logic that applies to multiple equipment, but not all have the same points, which is fine. However, if they all should have the same points, then you need to make sure you add those points in DB Builder to those equips throwing the error to resolve this. Then once the points are added, the program will just work, give it a minute to refresh itself or resave it.
folio::CommitErr: Cannot update persistent tag transiently
...