Andreschrosa

Members
  • Content Count

    107
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Andreschrosa

  • Rank
    Advanced Member
  1. Andreschrosa

    Detecting a Channel Timeout and stoping it

    Yes I did channel.restart(). Think it must be the big number of channels that is linked to each equipment, when they timeout they lag the conversor, probably, I have about 130 channels reading stuff from each equipment. So it's 130 channels timing out continuously.
  2. Andreschrosa

    Detecting a Channel Timeout and stoping it

    Still not working. In the sequence where I send the data to MySQL database I had some code to look at the time of the channel, and if it was delayed for more than X, it would fill all the data with zeros and send. In this same IF statement I put on a execute function to set the channel timing to double the actual value each time the zeros are send to the database. However this didnt prevent the other equipments in the same conversor to begin timing out until they stop reading. Maybe this is got to do with the number of channels timing out.
  3. Andreschrosa

    Detecting a Channel Timeout and stoping it

    Yes, that much I've been thinking, but I dont wanna restructure all that part as of yet. The problem is how to know if the equipment has been reconnected/restarted and begin reading it's channels again automaticaly... probably it's not so critical beacause the user will have an alert fire telling him of the devices timing out.
  4. It would be very useful to be able to do it! I'm having a problem here: we have several equipments connected in a ethernet-rs485 conversor, if one of then is disconnected from the network or malfunctions, the channels associated with it keep trying to read and time out lagging the other equipment's data flow...
  5. Andreschrosa

    Running functions in parallel

    I can, but the problem is the time it takes to read all the memory while it still is registering (hardware restriction). It will take the all equipments in a single conversor down for about 2:28 for each equipment on a conversor. The best solution in this case is like I said just read from memory in case of a big event that takes the machine running DAQFactory down. Anyway we got all the same values that go to memory being read by DAQFactory on the same 30 seconds interval, so it would be redundant data. Thanks for the help =)
  6. Andreschrosa

    Running functions in parallel

    Yes, I'm using DAQFactory modbus for the read input float that keeps reading data from the equipments. However there are times when the user will want to read the data stored in memory, I wanted to have it done in parallel with the data acquisition paused for about 3 hours, but it seens this will not work this way. It would require for that other application to steal the connection from the converter, get the data from memory then get out and let DAQFactory continue to do the regular data acquisition. And that probably is prone to a lot more of errors and headache than it's useful to have implemented. Instead, I'll advise the user to only read the data stored in memory in case of a particular event, one where he knows the communication with the DAQFactory application was cut and he need to see the memory.
  7. Andreschrosa

    Running functions in parallel

    I was thinking to use another application to read those memories, but my main doubt is can the same IP (the ethernet-RS485 conversor IP) be used by DAQFactory to send modbus read input float and send another modbus command to read the memory? Does DAQFactory locks the TCP/IP communication? In the sequence I wrote to read the memory, I must do device.lockport() to get all memory blocks right, so I fear I might already have answered my own question.
  8. Andreschrosa

    Running functions in parallel

    Probably this is the problem then: we currently have three to four equipments per device. By shuffled data I meant some data from one equipment was sent to the database as belonging to another, likewise caused by the five threads running on the same device. Think it will have to run sequentialy inside each device in the network, each device on it's thread then.
  9. Andreschrosa

    Running functions in parallel

    It seens to work, although the data seens to be shuffled when inserted in the database. My memory reading function call another function sequence that calls another function sequence and so on, there is a total of 5 function sequences called from the initial one. Maybe I should start a thread for each one of those, opposed to let then just call functions?
  10. Andreschrosa

    Running functions in parallel

    Ok, thanks for the tip that was what I was looking for, will try implementing it now.
  11. Andreschrosa

    Running functions in parallel

    Exactly, I dont know the exact number of equipments and it must be done in parallel, or the memory reading time will be too long. Then I must go for the advanced way, which would it be?
  12. We have several equipments connected in ethernet-RS485 conversors, and the network has about 9 of those conversors. I'm wrinting a sequence to read the memories of several equipments, and I wanted that reading to be run in parallel. The sequence that reads their memories is ready, but my doubt is in the next step: using the function notation on a sequence, can it be called over several times to run in parallel or it would aways run to the end of each function call before starting the next function call in the for loop? I will post bellow an algorithm of what I'm doing: for each conversor in the network do for each equipment in a conversor do ReadEquipmentMemory(conversor, equipment) endfor endfor ReadEquipmentMemory is the function sequence I wanted to run in parallel.
  13. Is it possible to call DAQFactory from windows, something like a shell command, to start a sequence?
  14. Is there any way to read when a channel reading times out? I wrote a sequece to get the latest channel value and write it to MySQL database, and it would be very interesting to be able to write if the channel has timed out. The solution I'm using now is to write zeros if the time difference between the latest read is greater than the stabilished timing *3, from the system time.
  15. Andreschrosa

    Modbus and Ethernet

    Probably gonna use the auto-login, I found our intranet server works that way too, so that wont be a problem now. Thanks!