Support Forums
dEX very slow to update and retrieve data

Dear admin,
Im using DT80M for my project, using functions:

  • modbus TCP master to poll two sensors
  • web server dex for remote access and retrieve data
  • serial sensor port for Request-Response SMS. After reading manuals, help, forum, i wrote code for SMS, it's OK, modbus poll OK, Dex still access however very slow than before, i don't know reason is my code or hardware not process fast enough. here my code: BEGIN"ABC" 10$="+84988287168" 11$="+84983650852" 1..10CV=-1 20CV("A_Level") 21CV("B_Level") RB10S 'convert time to send via serial port T(=1CV)
    3CV(W)=1CV%60
    4CV(W)=(1CV/60)%60
    5CV(W)=(1CV/3600)%24
    'check sms pattern 1SERIAL("{AT+CMGF=1\013}\w[500]") 1SERIAL("\e{AT+CMGL=\034REC UNREAD\034\013}") 1SERIAL("{AT+CMGD=0,4\013}") 1SERIAL("\m[+CMGL: ]\m[\034REC UNREAD\034,\034]%12s['+84988287168','+84983650852',6CV=2]\m[\034,,\034]%*21s\013\010%3d[7CV]") IF(6CV<2)AND IF(7CV==123){1SERIAL("{AT+CMGF=1\013}\w[500]{AT+CMGS=\034}") 4MODBUS(AD"192.168.1.100",R4:01,=8CV) 4MODBUS(AD"192.168.1.101",R4:01,=9CV)} IF(6CV==0)AND IF(7CV==123){1SERIAL("{%s[10$]\034\013}\m[\062]{Upstream\032Level=%d[8CV]cm\059Downstream\032Level=%d[9CV]cm at %2d[5CV]:%2d[4CV]:%2d[3CV]\026\013}\m[CMGS]\e}") 6CV=-1 7CV=-1 } IF(6CV==1)AND IF(7CV==123){1SERIAL("{%s[11$]\034\013}\m[\062]{Upstream\032Level=%d[8CV]cm\059Downstream\032Level=%d[9CV]cm at %2d[5CV]:%2d[4CV]:%2d[3CV]\026\013}\m[CMGS]\e}") 6CV=-1 7CV=-1 } 'logging modbus data RD"WaterLevel"("b:",ALARMS:OV:100KB:W60,DATA:OV:1MB)30s 4MODBUS(AD"192.168.1.100",R4:01,"A_Level(cm)") 4MODBUS(AD"192.168.1.101",R4:01,"B_Level(cm)")

LOGOND
END

Please help me for this problem or advice if not handling.
Thanks advance.

VungGV

Dear admin, Im using DT80M for my project, using functions: - modbus TCP master to poll two sensors - web server dex for remote access and retrieve data - serial sensor port for Request-Response SMS. After reading manuals, help, forum, i wrote code for SMS, it&#039;s OK, modbus poll OK, Dex still access however very slow than before, i don&#039;t know reason is my code or hardware not process fast enough. here my code: BEGIN&quot;ABC&quot; 10$=&quot;+84988287168&quot; 11$=&quot;+84983650852&quot; 1..10CV=-1 20CV(&quot;A_Level&quot;) 21CV(&quot;B_Level&quot;) RB10S &#039;convert time to send via serial port T(=1CV) 3CV(W)=1CV%60 4CV(W)=(1CV/60)%60 5CV(W)=(1CV/3600)%24 &#039;check sms pattern 1SERIAL(&quot;{AT+CMGF=1\013}\w[500]&quot;) 1SERIAL(&quot;\e{AT+CMGL=\034REC UNREAD\034\013}&quot;) 1SERIAL(&quot;{AT+CMGD=0,4\013}&quot;) 1SERIAL(&quot;\m[+CMGL: ]\m[\034REC UNREAD\034,\034]%12s[&#039;+84988287168&#039;,&#039;+84983650852&#039;,6CV=2]\m[\034,,\034]%*21s\013\010%3d[7CV]&quot;) IF(6CV&lt;2)AND IF(7CV==123){1SERIAL(&quot;{AT+CMGF=1\013}\w[500]{AT+CMGS=\034}&quot;) 4MODBUS(AD&quot;192.168.1.100&quot;,R4:01,=8CV) 4MODBUS(AD&quot;192.168.1.101&quot;,R4:01,=9CV)} IF(6CV==0)AND IF(7CV==123){1SERIAL(&quot;{%s[10$]\034\013}\m[\062]{Upstream\032Level=%d[8CV]cm\059Downstream\032Level=%d[9CV]cm at %2d[5CV]:%2d[4CV]:%2d[3CV]\026\013}\m[CMGS]\e}&quot;) 6CV=-1 7CV=-1 } IF(6CV==1)AND IF(7CV==123){1SERIAL(&quot;{%s[11$]\034\013}\m[\062]{Upstream\032Level=%d[8CV]cm\059Downstream\032Level=%d[9CV]cm at %2d[5CV]:%2d[4CV]:%2d[3CV]\026\013}\m[CMGS]\e}&quot;) 6CV=-1 7CV=-1 } &#039;logging modbus data RD&quot;WaterLevel&quot;(&quot;b:&quot;,ALARMS:OV:100KB:W60,DATA:OV:1MB)30s 4MODBUS(AD&quot;192.168.1.100&quot;,R4:01,&quot;A_Level(cm)&quot;) 4MODBUS(AD&quot;192.168.1.101&quot;,R4:01,&quot;B_Level(cm)&quot;) LOGOND END Please help me for this problem or advice if not handling. Thanks advance. VungGV

Hi VungGV,

dEX reside within dataTaker therefore will take part of processor power.
With SMS on demand feature, dataTaker will constantly operate on sending or parsing string.
Although you have 10 seconds rate, the process will last for at least 1 second per line (total approximately 8 seconds if you consider 2 x waiting time @ 500 ms).
And the respond time after sending ^Z is around 1 second as well.
During 9 seconds frame, all other processes will be halted including dEX.

If you want to get the fix time frame, you can try to trap the time before any serial syntax and at the end of schedule B.
Enable serial diagnostic P56=1.
And with 1 seconds windows, obviously dEX will be slower.

My question:

  1. What is your modem brand and model?
  2. Do you need 10 seconds SMS interval?
  3. Can you trap +CMTI instead of interrogating the modem every 10 seconds?
  4. Why don't you use 1ST, 2ST and 3ST for hour, minute and second?

Best regards,
Rudy Gunawan

Hi VungGV, dEX reside within dataTaker therefore will take part of processor power. With SMS on demand feature, dataTaker will constantly operate on sending or parsing string. Although you have 10 seconds rate, the process will last for at least 1 second per line (total approximately 8 seconds if you consider 2 x waiting time @ 500 ms). And the respond time after sending ^Z is around 1 second as well. During 9 seconds frame, all other processes will be halted including dEX. If you want to get the fix time frame, you can try to trap the time before any serial syntax and at the end of schedule B. Enable serial diagnostic P56=1. And with 1 seconds windows, obviously dEX will be slower. My question: 1. What is your modem brand and model? 2. Do you need 10 seconds SMS interval? 3. Can you trap +CMTI instead of interrogating the modem every 10 seconds? 4. Why don&#039;t you use 1ST, 2ST and 3ST for hour, minute and second? Best regards, Rudy Gunawan

Many thank Rudy,

I'm using SAM2W intercel, by Australia manufacturer for SMS on demand.
Because I need to check sms for responding that i scare it'll take a long time to user for respond sms, Ok, i will check again for using +CMTI as your advice,
The new program is revised as you said about 1ST,2ST....(i read your comments at other thread).smile

I thought the DT80M can process multi threads and can solve at the same time all request but actually as you said, it only processes sequentially,
So, if i increase the logging time MODBUS TCP to 30 minutes, and using interrupt event for serial, will it be solved?
I need to retrieve data each 30m, 1hour,2hour, so this is important.
Besides, you can tell me how many PC/mobile can access to DT80 via Dex? because it's slow, and if i use the basic interface web i can retrieve logged data in DT80?

And one more question, i programmed this code on DEX command,when i logon the dex the process again, the dialog shown "No Dex ...that configuration load successfully but...". It is error.?

Thanks so much and waiting for your response,
VungGV.

Many thank Rudy, I&#039;m using SAM2W intercel, by Australia manufacturer for SMS on demand. Because I need to check sms for responding that i scare it&#039;ll take a long time to user for respond sms, Ok, i will check again for using +CMTI as your advice, The new program is revised as you said about 1ST,2ST....(i read your comments at other thread).:smile: I thought the DT80M can process multi threads and can solve at the same time all request but actually as you said, it only processes sequentially, So, if i increase the logging time MODBUS TCP to 30 minutes, and using interrupt event for serial, will it be solved? I need to retrieve data each 30m, 1hour,2hour, so this is important. Besides, you can tell me how many PC/mobile can access to DT80 via Dex? because it&#039;s slow, and if i use the basic interface web i can retrieve logged data in DT80? And one more question, i programmed this code on DEX command,when i logon the dex the process again, the dialog shown &quot;No Dex ...that configuration load successfully but...&quot;. It is error.? Thanks so much and waiting for your response, VungGV.

Hi VungGV,

This SAM2W Intercel is a standard modem, it will pass +CMTI to its serial port on incoming SMS.
You can easily make a schedule which is triggered by incoming serial (i.e.: RB2SERIAL"+CMTI"), and no need to periodically interrogate the modem.

dataTaker can't process multiple thread at the same time, they will be processed one at a time since there is only one ADC.
Changing MODBUS reading rate by itself will not play important part of speeding up dEX but changing schedule trigger for serial.

dataTaker has around 20 connection sockets, minimum dEX connection uses 4 sockets thus give maximum 5 PC connection.
However if you deal with more than 5 mimics (excluding trend chard) at normal rate then the number of sockets will go up and less PC can access dEX.
For trend chart, there is different treatment since it uses more resources (including sockets) from dataTaker and PC.

Your last question is related to program format, dEX run on XML format and can't be interchangeable with a normal text format.
So when you send a program through dEX - Command interface, you were dealing with text format (not XML), thus Configuration menu will not recognise it

Best regards,
Rudy Gunawan

Hi VungGV, This SAM2W Intercel is a standard modem, it will pass +CMTI to its serial port on incoming SMS. You can easily make a schedule which is triggered by incoming serial (i.e.: RB2SERIAL&quot;+CMTI&quot;), and no need to periodically interrogate the modem. dataTaker can&#039;t process multiple thread at the same time, they will be processed one at a time since there is only one ADC. Changing MODBUS reading rate by itself will not play important part of speeding up dEX but changing schedule trigger for serial. dataTaker has around 20 connection sockets, minimum dEX connection uses 4 sockets thus give maximum 5 PC connection. However if you deal with more than 5 mimics (excluding trend chard) at normal rate then the number of sockets will go up and less PC can access dEX. For trend chart, there is different treatment since it uses more resources (including sockets) from dataTaker and PC. Your last question is related to program format, dEX run on XML format and can&#039;t be interchangeable with a normal text format. So when you send a program through dEX - Command interface, you were dealing with text format (not XML), thus Configuration menu will not recognise it Best regards, Rudy Gunawan

Dear Rudy Gunawan,

Thank you for your enthusiastic, everything now is clear, i'll try as you said and feedback to you.

Thanks so much

Dear Rudy Gunawan, Thank you for your enthusiastic, everything now is clear, i&#039;ll try as you said and feedback to you. Thanks so much

Dear Rudy,
when i assigned 1CV=1ST 'time milliseconds. It shown error as below:

job> 1CV=20SV
dataTaker 80 E54 - Expression error at line 190 col 9 [ 1CV=20SV<err> ]
job>

Please help me,
Thanks so much

Dear Rudy, when i assigned 1CV=1ST &#039;time milliseconds. It shown error as below: job&gt; 1CV=20SV dataTaker 80 E54 - Expression error at line 190 col 9 [ 1CV=20SV&lt;err&gt; ] job&gt; Please help me, Thanks so much

Hi Famiras,

If you want to assign 1ST to 1CV then you must do the same declaration as a channel.
1ST(=1CV)

Best regards,
Rudy Gunawan

Hi Famiras, If you want to assign 1ST to 1CV then you must do the same declaration as a channel. 1ST(=1CV) Best regards, Rudy Gunawan
69
6
2
live preview
enter atleast 10 characters
WARNING: You mentioned %MENTIONS%, but they cannot see this message and will not be notified
Saving...
Saved
With selected deselect posts show selected posts
All posts under this topic will be deleted ?
Pending draft ... Click to resume editing
Discard draft