shimh

Members
  • Content Count

    23
  • Joined

  • Last visited

Community Reputation

0 Neutral

About shimh

  • Rank
    Member
  1. I use MySQL for logging. When I make an inquiry to the database via DAQFactory's db functions, I am wondering if it is a way to know the total number of returned records without going through all the records. It is useful when the records are too many to fit one page. If I know the total number of records to be shown, I can calculate and display how many pages are there. Thanks.
  2. Is there any way to remove lisener and custom property addd to a component? I didn't find the function to do that. Thanks.
  3. shimh

    Opening ODBC database

    I believe that it is kinda like a bug in daqfactory. The following is what I have now: Using MySQL ODBC Connector 3.51: db.Open("ews_data") : Working Logging method: Working Using MySQL ODBC Connector 5.1: db.Open("ews_data"): O1003 Unknown error accessing ODBC database Logging method: Working So please verify which and what is wrong. It is definitely not some grammar issue at the user's side.
  4. shimh

    Opening ODBC database

    I have the exact problem right now. db is working if using logging. But I cannot open it via script. The error is either cannot open or unknown error. I actually have tried all what you have tried before finding this post. I would like to ask how the issue is solved? database name: ewsdb odbc connector name: ews_data odbc driver: mysql odbc 5.1 driver Thanks.
  5. Thank you very much for the information. \x10\x05 you mentioned is the ENQ Retry symbol in AB DF1 protocol. PLC makes ENQ Retry to inquiry (a message asking whether the previous message was received) of a node after an ACK timeout. Then we set ENQ Retries to 0 in PLC and there is no CRC error anymore. So the issue is solved. Then the following are just a few questions which may make things clearer and probably may make DAQFatory better. Is ENQ retry mechanism implemented in DAQFactory? Is our issue caused by that DAQFactory does not understand ENQ Retry (i.e. do you think if it is neccessary to put a note in DAQFactory manual that ENQ retry should be disabled?)? The following is the traffic after ENQ Retry is disabled on PLC. Do you know what could probably trigger PLC to make ENQ Retries? Thank you. Tx (11:10:32.083): \x10\x02\x00\x00\x0F\x00\xFA\x43\xA2\x04\x0A\x89\x3C\x00\x10\x03\xBE\x8B Rx (11:10:32.126): \x10\x06 Rx (11:10:32.127): \x10\x02\x00\x00\x4F\x00\xFA\x43\x3C\x00\x05\x00\x10\x03\x24\xCA Tx (11:10:32.127): \x10\x06 Tx (11:10:32.175): \x10\x02\x00\x00\x0F\x00\xFB\x43\xA2\x02\x00\x82\x0A\x00\x10\x03\xC9\x56 Rx (11:10:32.183): \x10\x06 Rx (11:10:32.203): \x10\x02\x00\x00\x4F\x00\xFB\x43\x00\x00\x10\x03\x0E\x95 Tx (11:10:32.204): \x10\x06 Tx (11:10:32.265): \x10\x02\x00\x00\x0F\x00\xFC\x43\xA2\x02\x00\x82\x00\x00\x10\x03\xCF\x64 Rx (11:10:32.272): \x10\x06\x10 Rx (11:10:32.293): \x02\x00\x00\x4F\x00\xFC\x43\x02\x00\x10\x03\x1A\x95 Tx (11:10:32.293): \x10\x06 Tx (11:10:32.302): \x10\x02\x00\x00\x0F\x00\xFD\x43\xA2\x02\x03\x85\x1E\x00\x10\x03\xE7\x86 Rx (11:10:32.339): \x10\x06 Rx (11:10:32.339): \x10\x02\x00\x00\x4F\x00\xFD\x43\x00\x00\x10\x03\x86\x95 Tx (11:10:32.339): \x10\x06 Tx (11:10:32.352): \x10\x02\x00\x00\x0F\x00\xFE\x43\xA2\x02\x03\x85\x50\x00\x10\x03\x93\x61 Rx (11:10:32.385): \x10\x06 Rx (11:10:32.385): \x10\x02\x00\x00\x4F\x00\xFE\x43\x00\x00\x10\x03\xC2\x95 Tx (11:10:32.386): \x10\x06 Tx (11:10:33.407): \x10\x02\x00\x00\x0F\x00\xFF\x43\xA2\x3C\x07\x89\x00\x00\x10\x03\x68\xAE Rx (11:10:33.441): \x10\x06 Rx (11:10:33.441): \x10\x02\x00\x00\x4F\x00\xFF\x43\xB8\x8E\x20\x9F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x03\xDC\x5A Tx (11:10:33.444): \x10\x06 Tx (11:10:33.445): \x10\x02\x00\x00\x0F\x00\x00\x44\xA2\x3C\x07\x89\x1E\x00\x10\x03\x0C\xBA Rx (11:10:33.489): \x10\x06 Rx (11:10:33.489): \x10\x02\x00\x00\x4F\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x03\x72\x04 Tx (11:10:33.493): \x10\x06 Tx (11:10:33.498): \x10\x02\x00\x00\x0F\x00\x01\x44\xA2\x3C\x07\x89\x3C\x00\x10\x03\xA1\x20 Rx (11:10:33.538): \x10\x06 Rx (11:10:33.538): \x10\x02\x00\x00\x4F\x00\x01\x44\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x03\xE5\x78 Tx (11:10:33.541): \x10\x06 Tx (11:10:33.544): \x10\x02\x00\x00\x0F\x00\x02\x44\xA2\x14\x07\x89\x5A\x00\x10\x03\x53\xE7 Rx (11:10:33.587): \x10\x06\x10 Rx (11:10:33.587): \x02\x00\x00\x4F\x00\x02\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x50\x10\x03\x53\x85 Tx (11:10:33.587): \x10\x06 Tx (11:10:33.597): \x10\x02\x00\x00\x0F\x00\x04\x44\xA2\x54\x08\x8A\x00\x00\x10\x03\x02\xD1 Rx (11:10:33.633): \x10\x06 Rx (11:10:33.634): \x10\x02\x00\x00\x4F\x00\x04\x44\xCD\xCC\x4C\x3D\x8D\x97\xCE\xBF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x03\xB1\x7B Tx (11:10:33.654): \x10\x06 Tx (11:10:33.671): \x10\x02\x00\x00\x0F\x00\x05\x44\xA2\x3C\x0A\x89\x00\x00\x10\x03\x7E\x2D Rx (11:10:33.705): \x10\x06 Rx (11:10:33.705): \x10\x02\x00\x00\x4F\x00\x05\x44\x00\x00\x01\x00\x01\x00\xB2\xF9\x5F\xF8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1E\x00\x1E\x00\x1E\x00\xF8\x11\xF8\x11\x36\x00\x8F\x1C\x00\x00\x00\x00\x00\x00\x0A\x00\x0A\x00\x0A\x00\x23\x08\xD0\x07\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x03\xF3\x66 Tx (11:10:33.707): \x10\x06 Tx (11:10:33.709): \x10\x02\x00\x00\x0F\x00\x06\x44\xA2\x3C\x0A\x89\x1E\x00\x10\x03\x0A\xDB Rx (11:10:33.753): \x10\x06 Rx (11:10:33.753): \x10\x02\x00\x00\x4F\x00\x06\x44\x0B\x00\x09\x00\xF8\x11\x7B\x04\x00\x00\x02\x00\x05\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xE0\xB1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x03\xD6\x9F Tx (11:10:33.755): \x10\x06 Tx (11:10:33.757): \x10\x02\x00\x00\x0F\x00\x07\x44\xA2\x04\x0A\x89\x3C\x00\x10\x03\xA3\xF9 Rx (11:10:33.800): \x10\x06\x10 Rx (11:10:33.800): \x02\x00\x00\x4F\x00\x07\x44\x3C\x00\x05\x00\x10\x03\x09\xB2 Tx (11:10:33.801): \x10\x06 Tx (11:10:33.822): \x10\x02\x00\x00\x0F\x00\x08\x44\xA2\x02\x00\x82\x0A\x00\x10\x03\x98\x44 Rx (11:10:33.834): \x10\x06\x10\x02\x00\x00\x4F\x00\x08\x44\x00\x00\x10\x03\x0B\xF4 Tx (11:10:33.835): \x10\x06 Tx (11:10:33.856): \x10\x02\x00\x00\x0F\x00\x09\x44\xA2\x02\x00\x82\x00\x00\x10\x03\xB5\xD6 Rx (11:10:34.349): \x10\x06\x10\x02\x00\x00\x4F\x00\x09\x44\x02\x00\x10\x03\x97\xF4 Tx (11:10:34.349): \x10\x06 Tx (11:10:34.357): \x10\x02\x00\x00\x0F\x00\x0A\x44\xA2\x02\x03\x85\x1E\x00\x10\x03\x84\x54 Rx (11:10:34.394): \x10\x06\x10 Rx (11:10:34.394): \x02\x00\x00\x4F\x00\x0A\x44\x00\x00\x10\x03\x72\x34 Tx (11:10:34.395): \x10\x06 Tx (11:10:34.407): \x10\x02\x00\x00\x0F\x00\x0B\x44\xA2\x02\x03\x85\x50\x00\x10\x03\xE9\xD3 Rx (11:10:34.440): \x10\x06\x10 Rx (11:10:34.440): \x02\x00\x00\x4F\x00\x0B\x44\x00\x00\x10\x03\x4F\xF4 Tx (11:10:34.441): \x10\x06 Tx (11:10:35.458): \x10\x02\x00\x00\x0F\x00\x0C\x44\xA2\x3C\x07\x89\x00\x00\x10\x03\x39\xBC Rx (11:10:35.493): \x10\x06 Rx (11:10:35.494): \x10\x02\x00\x00\x4F\x00\x0C\x44\xB8\x8E\x20\x9F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x03\xED\x21 Tx (11:10:35.495): \x10\x06 Tx (11:10:35.497): \x10\x02\x00\x00\x0F\x00\x0D\x44\xA2\x3C\x07\x89\x1E\x00\x10\x03\x54\x2A Rx (11:10:35.540): \x10\x06 Rx (11:10:35.540): \x10\x02\x00\x00\x4F\x00\x0D\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x03\x3E\xC7 Tx (11:10:35.542): \x10\x06 Tx (11:10:35.545): \x10\x02\x00\x00\x0F\x00\x0E\x44\xA2\x3C\x07\x89\x3C\x00\x10\x03\xE0\xD0 Rx (11:10:35.587): \x10\x06 Rx (11:10:35.588): \x10\x02\x00\x00\x4F\x00\x0E\x44\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x03\x2A\x7B Tx (11:10:35.589): \x10\x06
  6. Ok. The following are the data with HEX ticked. temp1 = device.AB_PLC.ReadAnalog(0,"N7:0",30,1) {{-29000, -24800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}} temp1 = device.AB_PLC.ReadAnalog(0,"N7:30",30,1) CRC error occur, retry.................... time instance: 21:13:05.061 {{-29000, -24800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}} temp1 = device.AB_PLC.ReadAnalog(0,"N7:30",30,1) {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 34, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}} The corresponding raw data are: Tx (21:13:03.822): \x10\x02\x00\x00\x0F\x00\xD6\x06\xA2\x3C\x07\x89\x00\x00\x10\x03\x5F\x30 Rx (21:13:03.855): \x10\x06 Rx (21:13:03.855): \x10\x02\x00\x00\x4F\x00\xD6\x06\xB8\x8E\x20\x9F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x03\x89\x55 Rx (21:13:04.929): \x10 Tx (21:13:04.929): \x10\x06 Tx (21:13:04.934): \x10\x02\x00\x00\x0F\x00\xD7\x06\xA2\x3C\x07\x89\x1E\x00\x10\x03\x32\xA6 Rx (21:13:04.976): \x05\x10\x06\x10\x02\x00\x00\x4F\x00\xD7\x06\x00 Rx (21:13:04.997): \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x03\x5A\xB3 Tx (21:13:05.061): \x10\x06 Tx (21:13:05.066): \x10\x02\x00\x00\x0F\x00\xD8\x06\xA2\x3C\x07\x89\x1E\x00\x10\x03\x73\x56 Rx (21:13:05.107): \x10\x06 Rx (21:13:05.108): \x10\x02\x00\x00\x4F\x00\xD8\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x03\x95\xB0 Tx (21:13:05.192): \x10\x06 So is it the PLC device does not give the correct reply? Any hint about what kind problem in the device or daqfactory could give this type of error? Thanks.
  7. We are writing script to read data using AB DF 1 protocol. However, we always have occasional, kinda random "CRC error in response". We try to capture the traffic when the CRC error occurs. The following are the data acquired (debug output in command window) by the script temp1 = device.AB_PLC.ReadAnalog(0,"F8:0",21,1) {{0.0500000007451, -1.61300003529, 0, 0, 0, 0, 0, 0, 0, 0, 5.449999809265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}} // the data above are the content of temp1 temp1 = device.AB_PLC.ReadAnalog(0,"N10:0",30,1) {{-2, 1, 1, -1614, -1953, 53, 0, 0, 0, 0, 30, 30, 30, 4600, 4600, 54, 7311, 0, 0, 0, 10, 10, 10, 2083, 2000, 18, 0, 0, 0, 0}} temp1 = device.AB_PLC.ReadAnalog(0,"N10:30",30,1) {{-2, 1, 1, -1614, -1953, 53, 0, 0, 0, 0, 30, 30, 30, 4600, 4600, 54, 7311, 0, 0, 0, 10, 10, 10, 2083, 2000, 18, 0, 0, 0, 0}} CRC error occur, retry.................... time instance: 14:59:12.781 temp1 = device.AB_PLC.ReadAnalog(0,"N10:30",30,1) {{11, 9, 4600, 1147, 0, 2, 5, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, -20000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}} temp1 = device.AB_PLC.ReadAnalog(0,"N10:60",2,1) {{56, 45}} And then this is the corresponding com link traffic captured in com monitor Tx (14:59:11.519): \x10\x06 Tx (14:59:11.537): \x10\x02\x00\x00\x0F\x00x\x12\xA2<\x0A\x89\x00\x00\x10\x03\xC6i Rx (14:59:11.573): \x10\x06 Rx (14:59:11.573): \x10\x02\x00\x00O\x00x\x12\xFE\xFF\x01\x00\x01\x00\xB2\xF9_\xF85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1E\x00\x1E\x00\x1E\x00\xF8\x11\xF8\x116\x00\x8F\x1C\x00\x00\x00\x00\x00\x00\x0A\x00\x0A\x00\x0A\x00#\x08\xD0\x07\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x03S\xB3 Rx (14:59:12.647): \x10 Tx (14:59:12.647): \x10\x06 Tx (14:59:12.652): \x10\x02\x00\x00\x0F\x00y\x12\xA2<\x0A\x89\x1E\x00\x10\x03\xAB\xFF Rx (14:59:12.694): \x05\x10 Rx (14:59:12.694): \x06\x10\x02\x00\x00O\x00y\x12\x0B\x00\x09\x00\xF8\x11{\x04\x00\x00\x02\x00\x05\x00\x00\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xE0\xB1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x03[\xD6 Tx (14:59:12.780): \x10\x06 Tx (14:59:12.784): \x10\x02\x00\x00\x0F\x00z\x12\xA2<\x0A\x89\x1E\x00\x10\x03\xBF\x0F Rx (14:59:12.826): \x10\x06 Rx (14:59:12.826): \x10\x02\x00\x00O\x00z\x12\x0B\x00\x09\x00\xF8\x11{\x04\x00\x00\x02\x00\x05\x00\x00\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xE0\xB1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x03\x98\xD6 Tx (14:59:12.911): \x10\x06 Tx (14:59:12.915): \x10\x02\x00\x00\x0F\x00{\x12\xA2\x04\x0A\x89<\x00\x10\x03\x16- Rx (14:59:12.957): \x10\x06 Rx (14:59:12.957): \x10\x02\x00\x00O\x00{\x128\x00-\x00\x10\x03\xC9\x8B Tx (14:59:12.978): \x10\x06 So it is obvious that the first try of temp1 = device.AB_PLC.ReadAnalog(0,"N10:30",30,1) returns the same data of device.AB_PLC.ReadAnalog(0,"N10:0",30,1), i.e. the previous acquisition. After retry, correct data are acquired. Sometimes, when the CRC error happens, temp1 is empty. I guess this happens when the data type of previous acquisition is different from current acquisition. So the result of ReadAnalogue is interpretable for ReadBinary. Do you the reason of the problem and how to fix it? Thanks.
  8. When I run the following code, the result does not look correct. global x x= 0x80000001 ? Format("0x%08X",test(x)) function test(in) return in The expected result is 0x80000001, but we get 0x7FFFFFFF. Actually we always get 0x7FFFFFFF when x is larger than or equal to 0x80000000. Now we change the code to the following, which is supposed to be equivalent: global x x= 0x1 ? Format("0x%08X",test(x)) function test(in) in += 0x80000000 return in We get 0x80000000 this time, which can be larger than the previous ceiling 0x7FFFFFFF. However, the value is not correct. Then we change the code again to the following: global x x= 0x1 ? Format("0x%08X",test(x)) function test(in) in += 2147483648 return in And we get the expected 0x80000001. One thing is that when we run ?0x80000000, and we get 2147483647. However, if we convert it in http://www.parkenet.com/apl/HexDecConverter.html, we get 2147483648. We suppose the latter is the proper result, as we see in the third code example. Is it a bug or something? Thanks
  9. So this is the scenario: 1. Users grab the trial version from the webstite and install it without hardware key 2. Put the ctl file in and create a shortcut 3. Run the shortcut Does this deployment work?
  10. If we have developed a DAQ app, ie. the .ctl file, how to best deploy daq runtime with the .ctl file in other computers? Possbile automated process, such as an installation program? And afte those apps have been running in some different places and we come up with updates of the .ctl file, as well as DAQ update itselft, what is the best way to populate these updates (likely, the updated DAQ runtime + the updated .ctl which is developed under the updated DAQ development edition) to those computers? Thanks.
  11. I am wondering what is the best way to send out a command, such as VW,101<Chr(13)> (tell the device to generate 1.01V), via rs-232 preciously every one second. And what s the approx. accurary? Thanks.
  12. shimh

    Logging to remote MySQL database? How?

    Does MySQL have to reside locally with DaqFactory? If it can be on a remote computer, what connection model is possible or recommended? |daqfactory |------------------> |odbc --- mysql|, or |daqfactory---odbc|--------------------->|mysql|? Thanks.
  13. Is it possible that DatFactory logs data to a remote MySQL database? And how to do it? In the manual, "ODBC is convenient if you ultimately want your data in a database, but it is very slow, especially when logging directly to Microsoft formats such as Excel and Access. We see 20 rows per second maximum update rates for these formats. You may see better performance, especially if you are writing to a native SQL database." So is ODBC the only way DaqFactory communicates witha database? Possible to use native way? Thanks.
  14. Is there any good way to implement secure user password storage (such as hash value) and login (including user right and user group management)? If Daqfactory does not have crypo functions, is it possible to use external ones? and How if possible? Generally such things are very important in production envirotment? Could I know your opinion on this? Thanks.
  15. Double clicking on an object works in development mode, but not in runtime mode. How to make it work? Does it have anything to do with demo license? Thanks.