AzeoTech

Administrators
  • Content Count

    5,969
  • Joined

  • Last visited

Everything posted by AzeoTech

  1. AzeoTech

    Filling a table component with an exported file

    I'm not sure. You probably have the timestamp wrong. Just do a test of sorttime() in the command alert: global string a = {"A","B","C"} a = insertTime(a, systime(), 1) // this makes it so time gets bigger as we move through the array Now, if you do: ? a you get {"A", "B", "C} and if you then displayed that in a table, "A" would be the top row. But if you do: ? sorttime(a) you get {"C", "B", "A"} which is in order from biggest time to smallest. If you then displayed that in a table, "C" would be the top row.
  2. AzeoTech

    Filling a table component with an exported file

    There are a couple ways. But if you are using ReadDelim() the first way (inserting in reverse) won't work. With ReadDelim, what you want to do is assign the timestamp to the actual content variable, then use sortTime(). You already did the first part, so just need to do the second part: messages = sortTime(messages)
  3. Buttons never have focus, so no.
  4. Not with that component. You would have to stack a bunch of regular linear gauge components together, or better yet, a bunch of symbol components that change size based on your variables.
  5. AzeoTech

    About Execute function

    First, don't use var. for your global variables. That is left over syntax from like 15 years ago. Instead, declare your globals and just use the variable name alone. Second, it looks like a parser bug. I'm amazed no one ever ran into it before. Just add a space after your equal sign: var.strdeneme = var.strx1+"= "+(var.x22)
  6. AzeoTech

    shellExecute run to osk.exe

    You may have to either run a batch file, or run cmd.exe with osk as the parameter, and /C or /K. Open cmd then type "help cmd" to see the various flags for cmd.
  7. No, other than manually changing it. I usually use objects in these cases, where the object contains the variables. The objects are the same class, just instantiated twice and stored in variables, say "ABC" and "KLM". Then I'd have a third variable called, say "CurrOb". I'd have all the screen elements reference CurrOb, so CurrOb.V1, CurrOb.v2, etc. Then I can simply assign whichever I want to currOb, so currOb = ABC or currOb = KLM to switch between the two. That would eliminate any cutting and pasting.
  8. AzeoTech

    Licensing

    The keys are manufactured by Marx. You can get their latest driver here: https://www.marx.com/en/support/downloads. Click on Drivers and Diagnostic tools and select CBUSetup. That is the Marx driver for the keys we use.
  9. AzeoTech

    Licensing

    OK, so you shouldn't use the 15 letter key for Pro anymore since you have the license on the hardware key. If you have used the key on a system, then you should (without the hardware key inserted) go to Tools - Remove Development license. That way, your one Pro license is just on the hardware key, which you can move to any computer.
  10. AzeoTech

    Licensing

    Sorry, I hate the fact that we call the 15 letter "key" a key, and also the hardware key a "key". It gets confusing real quick. You have a hardware key, right? What license is on the hardware key?
  11. AzeoTech

    ModbusTCP error. Two software devices

    Depends on what the slave is doing. If you are doing everything through channels, you can enable broadcasting on the master, then create a remote Connection on the slave, setting the Default Connection to this new Connection. That should make it pretty easy to do. Note that you would need Pro to utilize inter-DAQFactory networking.
  12. AzeoTech

    ModbusTCP error. Two software devices

    Check the specs on the Moxa units to find out how many connections they support. Or just turn off one computer, reboot the Moxa units and see if it works well with just one PC active. If so, then you will likely need to setup DAQFactory in more of a master/slave setup where only one copy of DAQFactory communicates with the hardware.
  13. AzeoTech

    Licensing

    Yes, that is correct. If you have the Pro license on the hardware key, then you would need a Runtime for each computer. As for your second question, you do not need a Runtime license while you are using the Pro key. The Pro license can be run in Runtime mode so that you can see what your application would look like on a runtime system. So, I would just do that: develop on your laptop using just the Pro key, then when you are ready get a runtime license for the new computer. One note: make sure you do not have the hardware key inserted when you license a computer with a Runtime license, otherwise it will put the runtime license on the key and overwrite the Pro license.
  14. AzeoTech

    ModbusTCP error. Two software devices

    How many PC's do you have connected to your devices? Many hardware devices only support 1 Ethernet connection at a time (or some other small number). They are not like PC's that can handle thousands of connections.
  15. AzeoTech

    Licensing

    You can purchase direct from us. Amplicon no longer carries DAQFactory. As for the license, if you have Pro and not the $3299 Developer, then you need one license for each computer. That license can be a runtime, which does not allow edits, or a Pro license. Alternatively, you can put your Pro license on a hardware key, and put runtime licenses on the actual computers. Then you can move the Pro license to other computers. You should not be using your 15 letter unlock key to unlock multiple computers as this is against the EULA. The exception, of course, would be if you are moving the license permanently, such as when a computer dies. To be compliant, you should make sure the number of unlocked computers + hardware keys = number of licenses purchased. Note that if you have Developer it is different.
  16. AzeoTech

    ModbusTCP error. Two software devices

    It looks like whatever you have happening is occurring every 5 seconds. Since your Timing is set to 1, I can only assume that you have one of your ports set with a timeout value of 5. The bottom line, though, is that you are getting Timeouts, meaning the device is not responding to queries. The Timing Lag / Port Locked errors are ancillary and caused by the repetitive Timeout errors. It is hard to tell exactly what is happening or which device is causing the issue, though it appears to be one with Offset = 0.68 and 0.73, so look there first. There are a lot of things that could go wrong with the comms, but if it was working at one point, and now not working and the device is powered up, I would first look to see that you don't have an IP address conflict on your LAN. I would also double check that no one changed the IP address of the device. Next I would set the Timing of all your channels to 0 and try just reading one channel from each device. Use the command/alert window and just type: read(myChannel) where mychannel is the name of some channel. Have the comm monitor open for the desired device to see if you are getting a response. Once you find one that isn't responding, figure out why. Once you have everything communicating while reading one channel, you can reenable the TIming back to 1.
  17. AzeoTech

    Long-term Graphing

    So you want the bottom axis graph to be zoomed initially, then expand to 28 days as new data comes in? This is not an issue, but does require you to change the X axis scaling parameters accordingly and not use the Time Width feature Also note that 1 second data over 28 days is a lot of data, 2.4 million data points in fact. Because of memory limitations, you will need to use the Persist feature of the channels to offload some of the data. Accordingly, you will need to set the Y Expression of the graph to subset so that persist data is accessed. For example: myChannel[bottomaxis.currentScaleFrom, bottomAxis.currentScaleTo] Change "myChannel" to the name of your channel. The "bottomAxis.currentScaleFrom" and To are variables of the graph that return the current scale from / scale to values used in generating the graph.
  18. AzeoTech

    Acquired data format change

    Then that should be correct. Are you have an issue with this inputs?
  19. First question would be why you don't just automatically create the directories on startup if they don't exist. The File. functions give you that ability. But as to your question, that really depends on how you setup your system and what you want to stop. Stopping channels with Timing is a little hard. For that, you'd have to set your Timing to 0 and either trigger reads from a sequence or programatically set the Timing values when you are ready. Everything else is much easier. For Logging sets, PIDs, etc, just make sure they aren't marked auto-start and then start them from script when ready. For Sequences, again, make sure only one is marked auto-start. Have this one display the desired page. The desired page would then have a button to continue which would then start a second sequence that change to the main page and start up all the other scripts, logging etc you have. I do not recommend using a modal popup. Just use a regular page that displays first.
  20. AzeoTech

    Disable to run second runtime

    Not built in. You could try and implement something using a registry variable or file. I would do it by writing a timestamp to that registry variable/file every few seconds and then when an instance starts, it reads it and if the time stamp is within, say, 10 seconds of the current time, it displays a message and quits.
  21. AzeoTech

    Acquired data format change

    I think part of the problem is that you are using the .csv extension which stands for "Comma Separated Values", but you are then separating your values with a semicolon. Excel is getting confused because it is looking for commas. I would start by trying to use a different extension, maybe ".txt", at which point Excel will likely ask you what you delimited with when you load the data. Are the digital FIO channels inputs or outputs?
  22. AzeoTech

    C1000 channel or function not found

    I am assuming line 7 is the case()? I'm actually surprised you get any error since you have a try/catch() with no error indication. You should almost always put a: ? strLastError inside your catch() so you know when there is some issue. I would add a ? datain after the readuntil(), or just add a breakpoint and look at the data. I don't see anything else really wrong.
  23. That is most likely due to the flow control settings not being supported by your specific comm port. That particular error message occurs when DAQFactory asks Windows to configure the baud, byte size, parity, stop bits and flow control settings of your port. The other possibility would of course be an unsupported baud, byte, parity or stop bits, with baud being the most likely of those 4.
  24. AzeoTech

    Long-term Graphing

    DAQFactory should not have an issue with this. At what interval will you be acquiring the data?
  25. Just change your return() statement: return(insertTime(vWork, getTime(vRaw), 0))