All Activity

This stream auto-updates     

  1. Last week
  2. AzeoTech

    Alarm Summary

    Probably the best way is to create a sequence function for each possible alarm status, i.e. fire, reset, and ack. So, for example, AlarmFire. You'd need to create a global string variable declared in a startup sequence, for example: global string alarmStatus Alternatively, you could create a String Test channel with the same name. Then, create a sequence called alarmFired: function alarmFired(string desc) alarmStatus.addValue("FIRED: " + desc) Do the same for alarmReset, and alarmAck if desired. Next, in each alarm, go to the Fire Event and put: alarmFired(strDescription) In the ResetEvent put: alarmReset(strDescription) and likewise for the Ack event if desired. Finally, you can use a table component to display the alarmStatus variable. You probably want to have the first column be time. That expression would be: formatdateTime("%c", getTime(alarmStatus)) while the second column would just be: alarmStatus Finally, you'll need to set the Description field for each alarm based on what you how you want it described in that table. It might seem a little cumbersome at first, but it will give you A LOT of flexibility. For example, you could, down the road, add email alerts, or handle a stack light or horn without minimal changes. That said, I might actually pass a few other items to the alarmFired/Reset/Ack functions, so: function alarmFired(string desc, priority, string help) Then the Fired event would be: alarmFired(strDescription, Priority, strHelp) You don't have to use priority or help, but at least it is being passed in so if you need it down the road it is already there.
  3. Terry

    Alarm Summary

    So how would I do the running list?
  4. Thank you. I tried numerous things while shooting in the dark. I would not have thought of this.
  5. AzeoTech

    Alarm Summary

    This is because everyone seems to want something different. So instead of a lot of high level built in controls, we give access to allow you to create exactly what you want. The next step, hopefully coming soon, is the ability to create your own sort of modules, so stay tuned on that. But as to alarm info, it depends on whether you want to display the status of all alarms at once (usually for smaller alarm counts), or a running list of active alarms as they occur. These are, at least, the two most common. You may want something different.
  6. AzeoTech

    Conditional Colors

    Yes, it automatically shades between values. To make it do discrete colors just double up. So, if you want it blue all the way to 95, then red from 95 up, set the blue threshold to 94.99 and the red one at 95. If you wanted 3 colors, say, blue to 50, yellow to 95, and red above, you'd do blue 49.99, yellow 50, yellow 94.99 and red 95. It is still technically shading from 50 to 94.99, but since both colors are the same, it results in just that color. It is also technically shading from 94.99 to 95, but the range is so small you don't see it. You can of course add more 9's to the end.
  7. New at this. Going crazy trying to get conditional colors of a Variable Value Component's background to behave as I want. All I want to do is have the background blue normally then go red when the value reaches a high threshold. I have, for instance, set the blue threshold to zero and the red threshold to 95. Problem is, when the value is between 0 and 95 both colors seem to be active and the background is purple. What am I missing? Thanks, Terry
  8. Terry

    Alarm Summary

    New at this. I was surprised and disappointed that DAQF does not include an alarm banner on the operating screen showing all active alarms. What is typically done to allow easy access to alarm information to the operator? Thanks, Terry
  9. Earlier
  10. AzeoTech

    Alarming After A Set Time

    The pause variable affects when the alarms are processed, so unpausing the alarms will not cause an additional 60 second delay in your case, since you are using the system time as your reference point.
  11. Daggos

    Alarming After A Set Time

    Ok after testing this seems to be working such an easy fix, thanks.
  12. Daggos

    Alarming After A Set Time

    Thanks for your reply i will test the alarm.paused but will that not just delay the alarm going off when you set alarm.paused back to 0 My alarm is for a pump min(TestBit(miri_16_Digital_in,7)[systime(), systime() - 60]) > 0 So if its off for 60 secs then alarm. Once i unpause will the alarms wait the full 60 secs?
  13. AzeoTech

    Alarming After A Set Time

    There are lots of ways. First, you can always do Alarm.paused = 1 to stop DAQFactory from processing alarms. In fact, this is a good thing if you have lots of alarms. Set paused to 1, then use alarm.checkAlarms() to trigger alarm checking from a simple sequence. This is more efficient. Alternatively, you can modify all your alarm expressions and add: && !isempty(alarmsStarted) to the end, so it might be: pressure[0] > 100 && !isempty(alarmsStarted) Then, just declare alarmsStarted when you are ready for DAQFactory to start processing alarms: global alarmsStarted = 1 There are plenty of other ways too.
  14. Daggos

    Alarming After A Set Time

    Hi, Is there a way to make it not alarm on DAQFactory start. I have DaqFactory process restart schedule and sometimes one startup it alarms why say a pump is off waiting for water.
  15. If you are going to use DAQFactory networking (meaning creating a "Connection") then you'll have to put the data in a channel. Just use a test D/A channel on the main system and set it to the desired value like you would a variable. Now as to addressing, you can always use 127.0.0.1, which is defined (universally, even in other programs) as the current system. Just remember that you need to enable broadcasting. It is disabled by default for security reasons. Go to File - Document Settings to enable. It should only be enabled on the server application, not the client.
  16. steveandrews

    local connection with second DF instance

    Hi, so firstly I'm using a developer licence. The channel I'm trying to share isn't from a device. It's just an integer that is calculated during a sequence Currently I just have a connection name. Is there a way to specify (with daqfactory networking) a local address or something for a particular instance? The help mentions connection to another instance in acquire mode. But I need user interaction in both instances. Otherwise, yes, writing and reading to a temporary file would work but a little more effort keeping things tidy etc. Cheers
  17. What you are seeing is actually a limitation of your device, not DAQFactory. It apparently only likes one connection at a time. So, the only way to share that data between two DAQFactory instances is to have one instance retrieve the data from the device and have the other instance retrieve the data from the first instance. You can do that with DAQFactory networking if you are using Pro. Alternatively, on the same machine, you could rig something up where that first instance writes the data to a file and the other instance reads it.
  18. Hi, I have two instances of DF running on one computer (probably not reccomended) that i want to share channels. I just made a new connection in both instances with the same name and set brd on one of the channels. It seems like one instance is talking to the other. I don't know how this is decided upon- maybe whichever was loaded first? I'd like 2-way channel sharing. Is this possible and could you shed a litttle light on the 'proper' way to do this? I don't want to combine both programs really as version history becomes awkward Cheers Steve
  19. AzeoTech

    Workspace Window

    Yup, its 9 years old. We moved our forum so any links to www.azeotech.com/board/index.php? have to be adjusted to support.azeotech.com. So:
  20. Stephen

    Workspace Window

    This link is broken.
  21. AzeoTech

    PostgreSQL

    Probably. You just need to find a 32 bit ODBC connector for PostgreSQL. DAQFactory connects to all databases via ODBC and really doesn't know exactly which database you are working with. ODBC makes this transparent.
  22. dle

    PostgreSQL

    Can I use DAQFactory to access PostgreSQL database?
  23. AzeoTech

    Modbus 485 Flow Control

    You probably want to set the Comm port handshaking to Manual, then set RTS control to Toggle. These parameters largely align with the Windows DCB structure for opening comm ports and you can read about it here if you want a lot of detail: https://docs.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-dcb
  24. AzeoTech

    "UNDO" operation issue

    Due to the dynamic nature of DAQFactory (the fact that it is running your application all the time and doesn't really have a compile time vs runtime), the undo only undoes one step, and only position changes. We are looking to improve this.
  25. Can you give me the exact steps you perform to reproduce this? It sounds like you load your document in Runtime mode with a document editing password, then hit F4 and it goes into Development mode?
  26. kanber

    Modbus 485 Flow Control

    Hi, I should make modbus 485 comunication with device like that; 1- RTS enable 2- Tx Data 3- RTS disable (Delay 100-200msec) 4- Rx Data these condition should do looping from 1 to 4 for communication. Is there any way to do that?
  27. while a project developed, and password protected to avoid to approach anyone to ender development mode while runtime screen is working. when testing purpose v19.1, I tried to click all function keys is seems to good, except F4, but click F4 function key, (in my HP notebook the this key also defined to switchover other monitor purpose), DAQfactory development mode switched automatically, so, it seems there is NO use, even we protected by the password of the RUNTIME SCREEN, Any advise plz?
  1. Load more activity