Copyright Jul. 2009 by ICP DAS CO., LTD. All right reserved.

This paper lists the upgraded history of the ISaGRAF driver of the 
  VP-25W7 and VP-23W7 .
 
The newly released driver can also be obtained from the following
website.
  http://www.icpdas.com/products/PAC/i-8000/isagraf.htm   or
  www.icpdas.com  >  ISaGRAF SoftLogic PAC  >  Driver

Warning:
  The copyright of the firmware and ISaGRAF embedded driver 
  belongs to ICP DAS CO., LTD. 
  Only the VP-25W7, VP-23W7, VP-25W6 and VP-23W6 have registered a 
  legal WinPAC ISaGRAF Target license. 

Trademark:
  Products, names and trade names appeared belongs to their respective owner. 

Please refer to below for the specifications and applications of VP-25W7 / VP-23W7
English DataSheet :
  VP-25W7/23W7 CD-ROM: \napdos\isagraf\vp-25w7-23w7\english-manu\ "vp-25w7-23w7-datasheet.pdf"
Chinese DataSheet :
  VP-25W7/23W7 CD-ROM: \napdos\isagraf\vp-25w7-23w7\chinese-manu\ "chinese-vp-25w7-23w7-datasheet.pdf"


**************************************************************************
*  1.01 , Jul.20,2009
**************************************************************************
1. This is the first relesed ISaGRAF driver of the VP-25W7, VP-23W7, VP-25W6 and VP-23W6 .
2. The following I/O cards are supported since this version.
   I-8017HW  ,   I-8024W   ,   I-8037W   ,   I-8040W   ,   I-8040PW  ,   I-8041W   ,   I-8041AW  ,   I-8042W  
   I-8046W   ,   I-8050W   ,   I-8051W   ,   I-8052W   ,   I-8053W   ,   I-8053PW  ,   I-8054W   ,   I-8055W 
   I-8056W   ,   I-8057W   ,   I-8058W   ,   I-8060W   ,   I-8063W   ,   I-8064W   ,   I-8068W   ,
   I-8069W   ,   I-8084W   ,   I-8088W   ,   I-8172W   ,   I-8091W   ,   I-8090W
   I-8112iW  ,   I-8114W   ,   I-8114iW  ,   I-8142iW  ,   I-8144iW  ,  
   I-8135W
   I-87013W  ,   I-87015W  ,   I-87015PW 
   I-87017W  ,   I-87017W-A5,  I-87017RCW,   I-87017RW 
   I-87018W  ,   I-87018RW ,   I-87018zW ,   I-87019RW ,   I-87024W  ,   I-87028CW
   I-87040W  ,   I-87041W  ,   I-87046W  ,   I-87051W  ,   I-87052W  ,  
   I-87053PW ,   I-87053W  ,   I-87053W-A5 , I-87053W-AC1, I-87053W-E5
   I-87054W  ,   I-87055W  ,   I-87057W  ,   I-87058W  ,   I-87059W  ,   I-87063W   ,   I-87064W
   I-87065W  ,   I-87066W  ,   I-87068W  ,   I-87069W  ,   I-87082W  
   I-87089W  ,   I-87211W
3. Please refer to the VP-25W7/23W7 CD-ROM for the ViewPAC ISaGRAF getting started manual.
   CD-ROM: \napdos\isagraf\vp-25w7-23w7\english-manu\getting-started-vp-2xW7.pdf
4. "R_MB_ADR" can be used to detect the battery1 (BT1) and battery2 (BT1) 's power on the backplane 
   R_MB_ADR( 1 , 9992 ) is for detecting battery1
   R_MB_ADR( 1 , 9993 ) is for detecting battery2
      retun value of  0: running out of battery power ,  99: still have battery power
5. supports c-function-blocks of "Mbus_XR" and "Mbus_XR1" to read max. 120 words or 60 long intergers or
   60 Real values from modbus RTU / ASCII devices. 
   Please refer to www.icpdas.com > FAQ > Software > ISaGRAF > 101  
   (or www.icpdas.com  >  ISaGRAF SoftLogic PAC  >  FAQ  >  101)
6. The "EEP_B_R" can be used to read the button state on the front panel of VP-25W7 / VP-23W7.
   Please refer to Appendix J of the ViewPAC ISaGRAF getting started manual.
7. VP-25W7 / VP-23W7 has only one ethernet port "LAN1" by default. User may purchase one I-8135W card and plug it 
   in slot 0 to 2 and then enable the 2nd ethernet port on the I-8135W. 
   (Steps of enabling the 2nd ethernet port of the VP-25W7 / VP-23W7 is listed in Appendix D of the 
    ViewPAC ISaGRAF getting started manual. )
   The 2nd ethernet port is necessary when running the "RND_new" function (New redundant system)
   (Please refer to www.icpdas.com > FAQ > Software > ISaGRAF > 093)


**************************************************************************
*  1.02 , Aug.01,2009
**************************************************************************
1. Fix a bug that i-8090W and i-8091W can not work in slot 0 in old driver.
2. Support IO complex equipment "i_8090A" to support 3-CH. Encorder plus 3-Ch. Z-index D/I .
3. Fix a bug of "RDN_new" in VP-25W7/23W7 (Search "Aug.01,2009" in rdn.c)


**************************************************************************
*  1.03 , Aug.24,2009
**************************************************************************
1. Add one "RDN_BREAK_TIME" parameter in the IO complex equipment "RDN_new".
   Its default value is 250 ms, the value can be 250 to 4000 for 
     " Remote_IO_type" = 2 , 12 and 22 .
2. One of WP-8xx7 's COM4 and COM5 can support "GTM-201-RS232" to send Short Message (SMS)
   in Local language or in pure text (English).
   The SMS_send( ) supports sending SMS in local language since WP-8xx7 driver Ver. 1.11 , 
    VP-25W7/23W7 driver Ver. 1.03 , iP-8xx7 driver Ver. 1.05 , uPAC-7186EG driver Ver. 1.08.
    To send Short Message in local language, please add one 'L' character in front of the 
    "No_" parameter, for example, 'L+886920119135'. And please set "M_" parameter as Hexa-Unicode
    converted by "SMS_Message_Converter.exe" which can be found at 
    ftp://ftp.icpdas.com/pub/cd/winpac-8xx7/napdos/isagraf/some_utility/
    For ex, below is to send "How are you" in Traditional Chinese once to the phone number 
      +886958321630 when "Action1" is True . 
          if   Action1   then
             Action1 := False ;
             TMP := SMS_send( 'L+886958321630' , '4F60597D' );
           end_if ;


**************************************************************************
*  1.04 , Sep.16,2009
**************************************************************************
1. Modify redundant code in VP-2xW7 to delay the auto-swtich-inactive-IP time to 24 seconds 
   when power up the Backup PAC if the I/O is i-8KE8-MTCP or i-8KE4-MTCP I/O.
2. Add IO complex-equipment "i_8093W" . Please refer to below web site for more information.
   www.icpdas.com > FAQ > Software > ISaGRAF > FAQ-112
3. Add c-function "to_unico" for using with "SMS_send" to send local language. 
   (www.icpdas.com > FAQ > Software > ISaGRAF > FAQ-111)


**************************************************************************
*  1.05 , Oct.13,2009
**************************************************************************
1. Modify the "pwm_xxx" functions to support in slot 0.
2. Add one parameter "Which_LAN" for the IO complex equipment "i8ke"
      0: auto-switch between LAN1 and LAN2
      1: always using LAN1
      2: always using LAN2
3. Supports I-87005W in slot 0 to 7. 
4. Supports I-87005W as RS-485 remote I/O.
5. Supports Modbus TCP/IP Master protocol to connect other Modbus TCP/IP slave devices.
   (refer to www.icpdas.com > FAQ > Software > ISaGRAF > FAQ-113)


**************************************************************************
*  1.06 , Oct.27,2009
**************************************************************************
1. Fix a bug of using I-87005W in slot 0 to 2 . 
2. Fix a convesion bug of the I-87005W 's range type = 60 . 
3. Supports "GPS_721" , refer to (www.icpdas.com > FAQ > Software > ISaGRAF > FAQ-107)


**************************************************************************
*  1.07 , Nov.18,2009
**************************************************************************
1. Add more UDP error checking in "Ebus" and "UDP" .
2. Sleep more time in some threads to lower down the CPU loading.
3. Add two parameter fors IO complex-equipment "i_8084w" > "FREQ8" .
   "Min_Update_Time" :  Can be 2 to 1000 ms, setting larger value will get smooth frequency curve, 
                        however the update time become slower.
   "Low_High_Auto"  :   0: Low frequency mode , 1: High frequency mode , 2: Auto mode
4. Fix a bug in the I-8017HW driver to improve the accuracy.
5. "RTU_Slav" now supports COM2, COM3, COM5 to COM8 (Max. 4 ports)
  

**************************************************************************
*  1.08 , Dec.04,2009
**************************************************************************
1. Improve the Modbus TCP/IP Slave communication. Add more exception check.


**************************************************************************
*  1.09 , Dec.18,2009
**************************************************************************
1. The "DI_CNT" function block now supports I_8050W. 
   Must connect the "i_8050" in the IO connection windows and setting the 
   first 8 channels as Digit inputs . For ex. setting the "config" parameter as below.
   0 :     all 16 channels are D/I
   FF00 :  Ch.1 to 8 are D/I , Ch.9 to 16 are D/O
   F000 :  Ch.1 to 12 are D/I , Ch.13 to 16 are D/O
2. Increase the max. "N_" parameter of function block "Averag_F" and "Averag_N"
   from 20 to 50 .
3. When "RDN_new" is enabled, only the Active controller can control the "Modbus TCP
   Master" to send "write" command.  Both of Active and in-Active controllers can 
   control the "Modbus TCP Master" to send "read" command.
4. Add one another way to enable the 2nd to 5th Modbus RTU slave port without modifying the 
   ISaGRAF project. Please refer to www.icpdas.com > FAQ > Software > ISaGRAF > FAQ-116
5. recover back the "PID_AL" modification to be the same as the WP-8xx7 driver version 1.09
6. The "DI_CNT" now supports I-8046W.
7. Change the dialog window size of the ISaGRAF driver to a smaller size to display well on VP-23W7.


**************************************************************************
*  1.09B , Jan.18,2010
**************************************************************************
1. Add I/O complex-equipment "eth_tcp" and "eth_udp" and 
   c-functions "eth_recv" and "eth_send" to send and receive UDP or TCP 
   data (using byte-array). Data can contain NULL character (0 hex).

   Please refer to the  
      ftp://ftp.icpdas.com/pub/cd/winpac-8xx7/napdos/isagraf/wp-8xx7/demo/  
   to download the example programs "Wpdmo77a" (UDP) and "Wpdmo77b" (TCP).

   If find no "eth_udp" and "eth_tcp" and "eth_send( )" and "eth_recv( )", 
   visit the  http://www.icpdas.com/products/PAC/i-8000/isagraf-link.htm  
   to download the "ICP DAS Utilities For ISaGRAF" to remove it once and 
   then re-insatll it to your PC/ISaGRAF again.
2. No output commands to the I-8KE4-MTCP and I-8KE8-MTCP if enable no DO and no AO.
3. DO NOT sleep so long in "Go_COMM thread" to make the Modbus TCP slave communication 
   a little faster.


**************************************************************************
*  1.10 , Jan.21,2010
**************************************************************************
1. The "Mbus_N_W" support writting 1 word by Modbus command 16 (10h).
   Set "NUM_W_" parameter as -1 to write 1 word by Modbus command 16 (10h).

   Original function :
   When set "NUM_W_" parameter as 1, it write 1 word by Modbus command 6 .
   When set "NUM_W_" parameter as 2 ~ 4, it write 2 ~ 4 words by Modbus command 16 (10h).

   New:
   When set "NUM_W_" parameter as -1, it write 1 word by Modbus command 6.


**************************************************************************
*  1.10A , Feb.09,2010
**************************************************************************
1. Add the "i_7016d4" c-function-block to read Vin0 , DI0 of I-7016 and write its DO2 and DO3.


**************************************************************************
*  1.11 , Feb.11,2010
**************************************************************************
1. Add two c-functions "aver_n" and "aver_f" to calculate the moving average of 
   an integer or real variable.
2. Fix a bug of file operation c-functions when the specified file (name or parh) 
   doesn't exist.


**************************************************************************
*  1.12 , Apr.22,2010
**************************************************************************
1. Support I-87017RW, I-87017W, I-87017RCW, I-87017W-A5 to use the fast mode.
   The A/I scan rate (8-Channel) for the fast mode is 60/8=7.5 Hz (except the i-87017W-A5, it is 50/8=6.25Hz) .
   The A/I scan rate (8-Channel) for the normal mode is 10/8=1.25 Hz .
   To use the fast mode, set the "range" setting as 
           F0000 + range setting of the normal-mode .

   For example, 

   For I-87017RW and I-87017W : (must connect "i_87017" in the IO connection)

       8 :            (Normal mode)
       F0008 :   (Fast mode)
                              -10V  --->  0V   --->  +10V 
             val:          -32768  --->   0   --->  32767 (dec.) 
                              8000   --->   0000   --->  7FFF  (hex.)       

       9 :            (Normal mode)
       F0009 :   (Fast mode)
                             -5V  --->  0V   --->  +5V
             val:          -32768  --->   0   --->  32767 (dec.) 
                              8000   --->   0000   --->  7FFF  (hex.)       

       A :            (Normal mode)
       F000A :   (Fast mode)
                             -1V  --->  0V   --->  +1V    
             val:          -32768  --->   0   --->  32767 (dec.) 
                              8000   --->   0000   --->  7FFF  (hex.)       

       B :            (Normal mode)
       F000B :   (Fast mode)
                            -500mV  ---> 0mV --->  +500mV     
             val:          -32768  --->   0   --->  32767 (dec.) 
                              8000   --->   0000   --->  7FFF  (hex.)       

       C :            (Normal mode)
       F000C :   (Fast mode)
                            -150mV  ---> 0mV --->  +150mV     
             val:          -32768  --->   0   --->  32767 (dec.) 
                              8000   --->   0000   --->  7FFF  (hex.)       

       D :            (Normal mode)
       F000D :   (Fast mode)
                            -20mA ---> 0mA   --->  +20mA   with 125 ohm 
             val:          -32768  --->   0   --->  32767 (dec.) 
                              8000   --->   0000   --->  7FFF  (hex.)

   For I-87017RCW : (must connect "i87017rc" in the IO connection)

       7 :            (Normal mode)
       F0007 :   (Fast mode)
                             4mA          --->       20mA 
             val:             0             --->     32767 (dec.) 
                                0             --->      7FFF  (hex.)       

       D :            (Normal mode)
       F000D :   (Fast mode)
                              -20mA  --->      0      --->  20mA   
             val:             -32768  --->      0      --->  32767 (dec.) 
                                  8000   --->      0      --->  7FFF  (hex.)       

       1A :            (Normal mode)
       F001A :   (Fast mode)
                              0mA         --->      20mA 
             val:                 0          --->     32767 (dec.) 
                                    0          --->     7FFF  (hex.)       

   For I-87017W-A5 : (must connect "i87017a5" in the IO connection)

       1B :            (Normal mode)
       F001B :   (Fast mode)
                              -150V  --->  0V   --->  +150V 
             val:          -32768  --->   0   --->  32767 (dec.) 
                              8000   --->   0000   --->  7FFF  (hex.)       

       1C :            (Normal mode)
       F001C :   (Fast mode)
                              -50V  --->  0V   --->  +50V
             val:          -32768  --->   0   --->  32767 (dec.) 
                              8000   --->   0000   --->  7FFF  (hex.)       


**************************************************************************
*  1.13 , Apr.30,2010
**************************************************************************
1. The main thread of the ISaGRAF driver releases 1 more ms to other 
   processes to get more CPU time for running when the ISaGRAF speed is set 
   as PLC_MODE(0) (fast mode)
2. The default ISaGRAF speed is set as PLC_MODE(2) (slower mode) if the 
   controller is belong to InduSoft + ISaGRAF PAC (VP-2xW6).
   If the PAC is pure ISaGRAF PAC (VP-2xW7), the default ISaGRAF speed is set 
   as PLC_MODE(0) (fast mode).


**************************************************************************
*  1.14 , Jun.02,2010
**************************************************************************
1. Fix two items in the "rdn_new" 
   (1) a bug when PAC switch to in-active PAC.
   (2) Do not enable the "mbus_tcp" if the prgram enables the "rdn_new" but 
   its rotary switch is set at 0.
2. Fix a bug for the i-87211W and GPS-721 when converting UTC-time to local-time if the
   time-difference is set as a negative value.
3. Support "mbus_tc2" for the Modbus TCP slave device which has two IP.
   Its usage is similiar as the "mbus_tcp" (FAQ-113)
4. Fix a bug when setting i-87017RCW (in slot 0 Thru. 2) 's range as 1A and 07 .
5. Add i-87113DW - The master card of the Carison Strain Gauage Inputs. 
   Please refer to www.icpdas.com > FAQ > Software > ISaGRAF > 128.


**************************************************************************
*  1.15 , Jun.22,2010
**************************************************************************
1. Make the RS-485 remote I/O to be scaned more frequent if the PLC_MODE(mode) 
   setting is mode = 1:slow  to  mode = 3:slowest.
2. Clear all RS-485 remote data buffer as 0 when program starting up.
3. Support I/O complex-equipment "i_87088w" and c-function-block "pwm87088" and "i_87088" 
   for the i-87088W and i-7088.
   Please refer to www.icpdas.com > FAQ > Software > ISaGRAF > FAQ-105 for more information.
4. Support the i-87017RCW-ZY I/O card which has 8-Ch. current inputs. 
   Please use the "i87017zy" in the ISaGRAF I/O connection windows if the i-87017RCW-ZY is plugged 
   in the I/O slot 0 to 2 of the VP-2xW7 / VP-2xW6. And use the "i87017zy" function block in the 
   Ladder or function block program when connecting the RS-485 remote i-87017RCW-ZY.
   Each of the Ch.1 to Ch.6 can set to a different Range_type.
      7 :    4mA  ~  20mA  (      0  ~  32767 )
      D :  -20mA  ~  20mA  ( -32768  ~  32767 )
     1A :    0mA  ~  20mA  (      0  ~  32767 )
  Both range_type of the Ch.7 and Ch.8 are fixed as 
     1F : -100mA  ~ 100mA  ( -32768  ~  32767 )
  Please must run the DCON utility once to configure the i-87017RCW when using it as RS-485 remote I/O.
  The data format must set as "2's compliment" and remember to configure the proper Rang_tyep of 
  the Ch.1 to Ch.6 .


**************************************************************************
*  1.16 , Jul.26,2010
**************************************************************************
1. Let many threads to release more ms for other process (like the InduSoft) to 
   run smoothly when the PLC_Mode( mode ) is mode =1 to 3.
2. Fix some code to properly generate the "\Micro_SD\Temp" path for some Micro-SD cards.


**************************************************************************
*  1.17 , Aug.05,2010
**************************************************************************
1. Replace the SharedMemory.dll from the Ver. 1.01 to Ver. 1.02 for reducing the CPU
   loading occupied by the ISaGRAF driver.


**************************************************************************
*  1.18 , Sep.02,2010
**************************************************************************
1. Increase the range of the complex-equipment "mbus_tcp" > timeout from 
   (500 ~ 5000 ms)  to  (500 ~ 15000 ms). 
2. Add IO board "i_8014" (8-Ch.) for the i-8014W card with JP1 set as "Differental" type.
3. Add IO board "i_8014s" (16-Ch.) for the i-8014W card with JP1 set as "Single-ended" type.
4. Update isa_el.dll to version 1.03 .
5. Update SharedMemory.dll to version 1.05 .


**************************************************************************
*  1.19 , Sep.22,2010
**************************************************************************
1. Support remote i_7061 .
2. Support the Soft-GRAF HMI. Please refer to 
   www.icpdas.com > FAQ > Software > ISaGRAF > FAQ-131
3. Support the I-87084W card. (www.icpdas.com > FAQ > Software > ISaGRAF > FAQ-100)


**************************************************************************
*  1.20 , Oct.19,2010
**************************************************************************
1. Update the Soft-GRAF driver (Soft-GRAF.exe) to version 1.02 .


**************************************************************************
*  1.21 , Nov.12,2010
**************************************************************************
1. Update the Soft-GRAF driver (Soft-GRAF.exe) to version 1.04 .
2. Fix a bug when PC / HMI / SCADA (like the Intouch SCADA) sending 
   the NET-ID as 0 via Modbus TCP.
3. Wait a little more time when switching the I-8017HW 's channel.
4. Add a function that the ISaGRAF driver will load the project from the 
   \Micro_SD\ISaGRAF\ISA11 if the Rotary switch is at 8 position when power up.
   User may copy the PC 's ISaGRAF project's TIC code - "Appli.x8m" to a new file "ISA11".
   And then copy this "ISA11" to the \Micro_SD\ISaGRAF\ . Then plug-in the Micro_SD 
   into the PAC and then turn the PAC 's rotary switch to "8" position and then power it up. 
   Then the ISaGRAF driver will run the project code in the \Micro_SD\ISaGRAF\ISA11 . 
   (If the rotary switch is not 8, the IsaGRAF driver runs the project in the \System_Disk\ISaGRAF\ISA11)


**************************************************************************
*  1.22 , Dec.08,2010
**************************************************************************
1. Fix a Modbus Master bug when using more than 400 "Mbus_n_r" (or "Mbus_nr1") blocks
   in one single ISaGRAF project.
2. Rlease 2 more milli-seconds in the CheckSMemory() to reduce the CPU loading.
3. Apply the Soft-GRAF driver Version 1.5 .


**************************************************************************
*  1.23 , Dec.24,2010
**************************************************************************
1. Support I-87016W and I-87042W.


**************************************************************************
*  1.24 , Jan.12,2011
**************************************************************************
1. There is a bug which no supporting the "UDP_send" and "UDP_recv" in the 
   version 1.23 and before version. Now the version 1.24 and later version
   support the "UDP_send" and "UDP_recv".


**************************************************************************
*  1.25 , Jan.25,2011
**************************************************************************
1. Support resetting the ISaGRAF driver by using PLC_MODE(999). 
   (refer to www.icpdas.com > FAQ > Software > ISaGRAF > 134)

   The "PLC_MODE(999)" reset only the ISaGRAF driver, not reset the whole 
   controller except the following condition happens.

   Exception: The "PLC_MODE(999)" will reset the whole controller once when it
   has reset the ISaGRAF driver up to 1000 times after it power up. This is to
   prevent the problem of memory usage increasing too much when reset_driver so 
   many times. 

   User may write a ST program as the following code. It will reset the ISaGRAF 
   driver when setting the "reset_driver" as TRUE.
   
   (* "TMP and "reset_driver" are declared as internal Boolean variable *)
   if  reset_driver  then
      reset_driver := False ;
      TMP := PLC_MODE(999) ;
   end_if ;
2. Add a safety mechanism in the "rdn" , "rdn_new" .
 
 
**************************************************************************
*  1.26 , Feb.23,2011
**************************************************************************
1. Add a COM. port re-install mechanism when detected the communication problem 
    for Modbus RTU slave ports on the "RTU_slav" .
2. Support RS-845 remote I/O module - I-7083 and I-7083D (3-ch. encoder inputs). 
   Please use the "i_7083d" or "i_7083d2" blocks in the program to connect it.
3. Support SQL Client functions to connect to MicroSoft SQL server for write data and 
   read data. Please refer to www.icpdas.com > Support > FAQ > Software > ISaGRAF > FAQ-135.


**************************************************************************
*  1.27 , May.27,2011
**************************************************************************
1. Fix a bug when controlling the I-8050W in slot 0.
2. Increase the serial comm port 's sending buffer from 256 to 1024 bytes.
3. Support I-87H17W HART master module in slot 0 to 2 to communicate with HART devices.
   Please refer to www.icpdas.com > Support > FAQ > Software > ISaGRAF > FAQ-136.


**************************************************************************
*  1.28 , Jul.22,2011
**************************************************************************
1. Modify the ISaGRAF driver to support new I-87H17W with new $AAM command.
2. Modify the ISaGRAF driver to support the new I-87H17W with new $AAM command.
3. For "RDN_new" and "RDN_new2", increase the RS-485 timeout to prevent frequently 
   switching between both PACs when the scan time is more than 25 ms and under 80 ms.
4. Fix a problem for the tcp_send and eth_send that some internet gateways may refuse
   the TCP connecting request.
5. Support COM3 to link one GTM-201-RS232 + SIM card to do GPRS wireless communication.
   The PAC can send and receive Short Message (SMS) by disconnect the GPRS communication.
   When the GPRS is connected, the PAC can do the following functions.
     The PAC can send an email (and with one attatched file) via the GPRS wireless connection.
     The PAC can run tcp_send to send TCP message or run tcp_recv to receive TCP message
       via GPRS wireless connection.
     The PAC can run eth_send to send TCP bytes or run eth_recv to receive TCP bytes
       via GPRS wireless connection.
     The PAC can run udp_send to send UDP bytes or run udp_recv to receive UDP bytes
       via GPRS wireless connection.
   Please refer to www.icpdas.com > Support > FAQ > Software > ISaGRAF > FAQ-143
     for more information.


**************************************************************************
*  1.29 , Sep.02,2011
**************************************************************************
1. Modify a bug when using "tcp_clie" or "udp_ip" to send message via GPRS or LAN1 or LAN2.
2. Support sending email via mail servers which need user_account / password login first.
   Email can be sent by LAN1 or LAN2 or GPRS (refer to FAQ-143).
   For example, The following statement set the user_account as 'my_account' ,
   password as 'my_password' and set timeout as 75 seconds (default is 60 seconds).

    (* INIT is declared as Boolean with initial value - TRUE *)
    IF  INIT  then  
      INIT := False ;
      TMP := mail_set( 104 , 'my_account' ) ;    (* user account *)
      TMP := mail_set( 105 , 'my_password' ) ;   (* user password *)   
      TMP := mail_set( 106 , '75' ) ;            (* timeout, unit is seconds. value can be 30 to 180 *)
    END_IF ;

   Note: If the mail server doesn't need to login before sending email, 
         don't set the user_account and user password.
        
3. Modify a bug when sending email with a big attach file via GPRS (or via LAN1 , LAN2).
4. Support "Mbus12w" function block to write 1 to 12 words to Modbus RTU / ASCII / TCP
   slave devices (refer to www.icpdas.com > Support > FAQ > Software > ISaGRAF > FAQ-144). 
5. Support I-8212W to dial up GPRS. 
   (refer to www.icpdas.com > Support > FAQ > Software > ISaGRAF > FAQ-143)
6. Support I-87037W , I-87019ZW , I-87017ZW and I-87017DW (refer to FAQ-148).


**************************************************************************
*  1.30 , Sep.29,2011
**************************************************************************
1. Support the I-8123W card to connect CANopen slave devices. (refer to FAQ-145)
2. Support the I-87026PW card (6 A/I, a D/O, 2 D/I and 2 D/O).
3. Fix a bug of the Soft-GRAF driver which can not display the animation picture 
   well on a backgroud picture. And fix its blinking problem.


**************************************************************************
*  1.31 , Oct.31,2011
**************************************************************************
1. Support the I-8212W-3GWA card (3G GPRS / GSM module) . Refer to FAQ-143.
2. Support the "ComStr_w( )" to play a sound if the PAC has a phone port. Refer to FAQ-149.
3. Update the Soft-GRAF driver (Soft-GRAF.exe) to version 1.09 .
4. Support the Soft-GRAF Studio.
   (refer to www.icpdas.com > Support > FAQ > Software > ISaGRAF > FAQ-146)

**************************************************************************
*  1.32 , Nov.10,2011
**************************************************************************
1. Fix the incorrect Year / Month / Day / DayofWeek value in the "SYSDAT_R" 
   when the time is just pass thru. 00:00:00 . 


**************************************************************************
*  1.33 , Dec.07,2011
**************************************************************************
1. Supports the Soft-GRAF Studio (version 1.02) to use the g_M_Val and g_M_Inp 
   to access to ISaGRAF message variables.


**************************************************************************
*  1.34 , Dec.27,2011
**************************************************************************
1. Supports the Soft-GRAF Studio (version 1.02A).
2. Update the Soft-GRAF driver (Soft-GRAF.exe) to version 1.11 .


**************************************************************************
*  1.35 , Feb.14,2012
**************************************************************************
1. Supports the Soft-GRAF Studio (version 1.03).
2. Support the I-87019R 's type code  07 ( 4 ~ 20 mA) and  1A ( 0 ~ 20 mA) .
3. Support I-8123W 's  "Guarding mode" and "HeartBeat mode"
4. Fix a bug when I-87088W is plugged in slot 0 .
5. Extend the timeout setting from 50 ms to 110 ms for the I-87088W 's  $AA6FF  command.
6. Let the "PWM87088" blocks can set its frequency up to 500K Hz. 
7. Supports the "TCP_para" IO complex-equipment 's "Socket_Timeout" setting to change the 
   timeout value from 35 seconds to 110 seconds. 


**************************************************************************
*  1.36 , Mar.29,2012
**************************************************************************
1. Fix a "still-output" bug when modify one or some parameters at the same time 
   when stopping the I-8088W 's PWM output .
2. Support the I-8213W and I-8213W-3GWA to do the GPRS / SMS communication and 
   also get the GPS data. 
   (refer to www.icpdas.com > Support > FAQ > Software > ISaGRAF > FAQ-143)
3. Support the "Mbus_tcp" and "Mbus_tc2" to communicate with one or more remote 
   Modbus TCP servers via the GPRS dial-up connection.
   (refer to www.icpdas.com > Support > FAQ > Software > ISaGRAF > FAQ-153 and FAQ-143)
 
**************************************************************************
*  1.36A , Apr.05,2012
**************************************************************************
1. replace the dial_up.dll to a better one.


**************************************************************************
*  1.37 , Apr.23,2012
**************************************************************************
1. Modify the dial_up.dll to make a ping every 15 minutes.
2. Modify the dial_up.dll to give a "AT &F" command when 1st dialing up after power-on.
3. Add driver to support FRNET AI module: FR-2017 and AO module: FR-2024.


**************************************************************************
*  1.38 , May.30,2012
**************************************************************************
1. Add a special function for the MSGARY_W( ADDR_ , MSG_ ). 
   The Soft-GRAF studio version 1.05 and later version will support the "g_Alarm" to
   display and record the alarm message generated by the MSGARY_W( ).
   ( refer to www.icpdas.com > FAQ > software > ISaGRAF > FAQ-146 )
   A. Setting ADDR_ as  -9  means to output an alarm message to the Soft-GRAF HMI. 
          TMP := MSGARY_W( -9 , alarm_msg ) ;
      The Soft-GRAF HMI will record this alarm message and also pop-up an alarm MessageBox.
   B. Setting ADDR_ as  -8  means to output an alarm message to the Soft-GRAF HMI. 
          TMP := MSGARY_W( -8 , alarm_msg ) ;
      The Soft-GRAF HMI will record this alarm message however no pop-up this alarm on the MessageBox.
2. Support the Soft-GRAF driver version 1.12 and the Soft-GRAF studio version 1.04.
   Therer are two midifications in the Soft-GRAF driver version 1.12.
   A. Add two HMI objects - "g_Trend" and "g_Gayge" .
   B. The Soft-GRAF pictures will be saved in the \Micro_SD\Soft-GRAF\user\ directory if
      the PAC model number is one of the WP-8xx7, VP-2xW7, WP-5xx7 .
      (Old version saved pictures in the \System_disk\ISaGRAF\Sofgrafy\user\ directory)


**************************************************************************
*  1.39 , Jun.08,2012
**************************************************************************
1. Update the Soft-GRAF.exe to the version 1.13 .


**************************************************************************
*  1.40 , Jul.03,2012
**************************************************************************
1. Update the Soft-GRAF.exe to the version 1.14 .
2. Fix a bug when using RTU_slav" with a baud rate 57600.
3. Remove the "release_FRNET_module()" when the slot is not using I-8172W.
   (Then the I-8017HW 's H/L alarm LED will be OFF when ISaGRAF driver is starting up.)
4. The VP-2xW7 will make "Beep - Beep" voice when triggering a g_Alarm.


**************************************************************************
*  1.41 , Jul.18,2012
**************************************************************************
1. Update the Soft-GRAF.exe to the version 1.16 .
2. If the "msg1" contains the <CR> and <LF> (ASCII No. 13 and 10) when 
   calling the  MSGARY(-8,msg1)  or  MSGARY_W(-9,msg1)  to trigger a g_Alarm, 
   the <CR> and <LF> character will be replaced to a SPACE character (ASCII No. 32) automatically .
3. Supports the range type 82 and 83 in the I-87015W and I-87015PW module.  
    82 : Cu 50 , -50 to +150 degree Celsius
    83 : Nickel 100, -60 to + 180 degree Celsius
4. Supports the range type 82 the I-87013W module.  
    82 : Cu 50 , -50 to +150 degree Celsius
5. The I-87013W doesn't support range type 2B, 2C and 2D.
   

**************************************************************************
*  1.42 , Aug.03,2012
**************************************************************************
1. Fix a bug when doing ftp_send - "progress stop at 98%" .
2. Fix a bug in the bus7000, bus7000b - "The Q_ ouput of the remote I/O function blocks 
      is not correct in some cycles when the PAC is just started if the module is not connected"
3. Support the Soft-GRAF HMI 's g_Alarm to send alarm history files to a remote ftp server.


**************************************************************************
*  1.43 , Sep.14,2012
**************************************************************************
1. Update the "I8123W.dll" and "i8120.dll" to fit the new firmware of the I-8123W.
   The old "I8123W.dll" and "i8120.dll" can not work well with the I-8123W 's new firmware.
2. Support the Soft-GRAF 's "g_Logger1" to record some Integers , Reals and Boolean data.
   And user may enable the ftp function in the "g_Logger1" to deliver the log-file 
   to a remote ftp server running in a PC or in a workstation.
   The g_Logger1 HMI object will be available in the version 1.07 of the Soft-GRAF studio .
3. Modify the cycle_mbus[port] to a smaller value to increase the communication efficiency of
   Modbus RTU / ASCII master ports.


**************************************************************************
*  1.43A , Sep.21,2012
**************************************************************************
1. Increase the communication efficiency of Modbus RTU / ASCII master ports a little.


**************************************************************************
*  1.44 , Nov.06,2012
**************************************************************************
1. Add a file "ETHAPI.dll" in the driver .
2. User may use the following function to get the connection state of the LAN1.
     (* Return 1: connection ok.  return 0: broken line *)
     LAN1_state := R_MB_ADR( 1 , 9987 ) ;   
3. Support the "Mbus_tcp" and "Mbus_tc2" to send Modbus TCP commands with 
   different NET-ID numbers to the same Modbus TCP slave device.
   (refer to the section 1.4 in the http://www.icpdas.com/faq/isagraf.htm > FAQ-113)
4. Support the COMARY_W( -7 , msg1 ) to trigger a Soft-GRAF g_Alarm on the pop-up
   window to show all unAck Alarm.
5. Support the following function to ACK Soft-GRAF g_alarm by the ISaGRAF program.
   To ack the last alarm :       COMARY_W( -6 , 'LAST' )   
   To ack today's all alarms :   COMARY_W( -6 , 'ALL' )   
   To ack an alarm :             COMARY_W( -6 , 'xxx' )   
       (xxx is a number from 1 to 2999)


**************************************************************************
*  1.45 , Nov.26,2012
**************************************************************************
1. Support the DL-100T485 (DCON protocol) to measure temperature and humidity .
2. Upgrade the Soft-GRAF driver to the version 1.20 .


**************************************************************************
*  1.46 , Dec.18,2012
**************************************************************************
1. Save the project to the storage memory when doing on-line-modification 
   (or called on-line-change) successfully .
2. Modify the PID_AL function block to be more safe when setting a small value 
   to the "Ts" parameter.
3. Upgrade the Soft-GRAF driver to the version 1.21 . 
   ( The g_Logger1" can record up to 50 tags.)


**************************************************************************
*  1.47 , Jan.18,2013
**************************************************************************
1. Update the Soft-GRAF driver to the 1.22 version.
   Fix a bug in the Soft-GRAF driver version 1.21 and older version which
   may not display the g_B_Led and g_B_Pic well sometimes.


**************************************************************************
*  1.47A , Jan.31,2013
**************************************************************************
1. Support Mbus_AR to request max. 24 words (or 12 REAL or 12 long integer).
   The difference between Mbus_AR , Mbus_AW and other Mbusxxx is the
   Mbus_AR , Mbus_AW can apply in "for ... loops" in the first scan cycle.
2. Support Mbus_AW to write max. 12 words (or 6 REAL or 6 long integer).
   The difference between Mbus_AR , Mbus_AW and other Mbusxxx is the
   Mbus_AR , Mbus_AW can apply in "for ... loops" in the first scan cycle.


**************************************************************************
*  1.48 , Feb.18,2013
**************************************************************************
1. Fix a bug in the function block - Mbus24R and Mbus24R1.
   They can read max. 200 bits (not 384 bits) When "CODE_" is 1 and 2 .
2. The Mbus_AR supports CODE 1 and 2 to read up to 200 booleans (bits).


**************************************************************************
*  1.49 , Mar.01,2013
**************************************************************************
1. Each Mbus_tcp in the I/O connection now support up to 1000 mbusxxx function blocks.
   (older version support only up to 255)
2. The Mbus_AW supports CODE 5 to write 1 boolean (Bit).
   The Mbus_AW supports CODE 15 to write 1 to 16 booleans (Bits).
3. Modify the title of the ISaGRAF-ViewPAC-driver windows to "VP-2xW7/4137 ISaGRAF Driver"
   (The old title was "VP-25W7/23W7 ISaGRAF Driver").
4. The ISaGRAF-ViewPAC-driver supports the VP-4137 hardware.


**************************************************************************
*  1.50 , Mar.15,2013
**************************************************************************
1. Update the Soft-GRAF driver to version 1.23 to fix a bug when g_Alarm generate
   more than 2999 alarms.


**************************************************************************
*  1.50 , Mar.18,2013
**************************************************************************
1. Update the Soft-GRAF driver to version 1.23A to fix a bug when g_Alarm generate
   more than 2999 alarms and click "Ack" .
2. Fix a bug when search g_Alarm keyword (1 ~ 3000 ) in alarm files.


**************************************************************************
*  1.50A , Apr.08,2013
**************************************************************************
1. Sometime sneding the Short Message fail when using the I-8212W-3GWA.
   So cancel the "ATZ" command when reset the I-8212W GSM module in slot 0. 


**************************************************************************
*  1.51 , Apr.08,2013
**************************************************************************
1. Update the Soft-GRAF driver to version 1.24.
   Improve the running speed when operate g_Alarm 's "ACK ALL" or export 
   alarm files to USB pen drive.


**************************************************************************
*  1.52 , Apr.23,2013
**************************************************************************
1. Update the Soft-GRAF driver to version 1.25 to support buttons with 
   Multi-line text. 
   To show a multi-line text in the below buttons, please add a "space" 
   character between words. For example "Hello World" shows 2 line in a button
   when its width is not enough to hold this "Hello World" text in one line. 
   However the "HelloWorld" will show only one line no matter its width is enough 
   or not because there is no "space" character between the "Hello" and "World" .
      g_B_Inp  , g_N_Inp   , g_F_Inp , g_M_Inp , g_ToPage , g_Login , 
      g_Logout , g_Logger1
2. Update the Soft-GRAF driver to version 1.25 to extend the file retaining days
   of the g_Logger1 as the following. 
   --------------------------------------------------------------------------- 
      Sampling time of the g_Logger1 (seconds)       retaining days (or months) 
   --------------------------------------------------------------------------- 
          1   , 2   , 3                                    10  days
          5   , 10  , 15 , 20 , 30                          1  month
          60  , 120                                         3  months
          180 , 300                                         6  months
          600  or larger                                    12 months 
         

**************************************************************************
*  1.52A , Jun.18,2013
**************************************************************************
1. Update the ETHAPI.lib and ETHAPI.DLL to a new version. The older version
   may crash the LAN1 / LAN2 communication when using the 
   R_MB_ADR(1, 9987) or R_MB_ADR(1, 9986)
2. Update the Soft-GRAF driver to version 1.26 to support local language Encoding
   for the g_Logger1 HMI object.


**************************************************************************
*  1.53 , Jun.25,2013
**************************************************************************
1. Support user to add his own C-function and C-function blocks to work in the same 
   ISaGRAF WinCE PAC. Please refer to the below web for more information.
   http://www.icpdas.com/ > Support > FAQ > ISaGRAF Soft-Logic PAC > FAQ-167
2. Support Schedule-Control. Please refer to the below web for more information.
   http://www.icpdas.com/ > Support > FAQ > ISaGRAF Soft-Logic PAC > FAQ-166
3. The Soft-GRAF driver now supports "g_ToPage" to set Page No. as -1 and 201.
   Page No. -1  means switching to "Previous" Page.
   Page No. 201 means switching to "Schedule-Control" Page (refer to FAQ-166).


**************************************************************************
*  1.54 , Jul.16,2013
**************************************************************************
1. Fix Modbus TCP server.
   WinCE 's socket( ) and accept( ) functions should use "INVALID_SOCKET" to 
   test if it is succeed or fail.
2. Sleep a little more in the Modbus TCP server thread and the PAC main thread
   when there is more Modbus TCP clients connectted.


**************************************************************************
*  1.55 , Aug.16,2013
**************************************************************************
1. Fix Mbus_AW function block.
   The old version can not use Modbus function call 16 to write only one 
   Real or write only one Long integer . Now fix it since this version.
2. Add a c-function "F_cp_dir" to copy all files in a directory (except sub-directory)
   to one another directory.
   (refer to http://www.icpdas.com/root/support/faq/isagraf.php > FAQ-168)
   for example, 
     (* Copy_it and TMP are declared as Boolean / Internal variable *)
     if  Copy_it  then
       Copy_it := FALSE ;
       (* 
          Correct directory name :  '\Temp\Dir2' ,  '\Temp\Dir3'  .
          Wrong directory name   :  '\Temp\Dir2\' , '/Temp/Dir3'  .
       *)
       (* Copy all files in \Temp\Dir2 (except sub-directory) to \Temp\dir3 *)
       TMP := F_cp_dir('\Temp\Dir2' , '\Temp\dir3' ) ;
     end_if ;


**************************************************************************
*  1.56 , Sep.03,2013
**************************************************************************
1. fix a bug when initiate the I-87028CW card in slot 0 thru. 7 .
2. Add driver for the I-87028UW and I-87024UW .
  (refer to http://www.icpdas.com/root/support/faq/isagraf.php > FAQ-169)


**************************************************************************
*  1.56A , Sep.30,2013
**************************************************************************
1. Don't open the Mbus port if the port is set as 5 to 16 and there is no 
   multi-serial card plugged in the VP-25W7 's slot 0 thru. 2 .


**************************************************************************
*  1.56B , Oct.08,2013
**************************************************************************
1. Add a function block "i_7016d5" to send only two DCON commands to the 
   I-7016 / I-7016D / I-7016P to get only 1-Ch. A/I and output 1-Ch. A/O.
   Compared with the function block "i_7016d" and "i_7016d2" , the "i_7016d4"
   has smaller I/O scan time (means it is much faster).


**************************************************************************
*  1.57 , Oct.16,2013
**************************************************************************
1. The third input parameter "INTERVAL_" of the "S_MB_ADR( )" can support 0 to 99
   (older version only support 0 and 1).
2. Support "i_87024c" to control the I/O board I-87024CW in slot 0 thru. 2 . 


**************************************************************************
*  1.58 , Oct.21,2013
**************************************************************************
1. Fix a bug in the 1.56A, 1.56B and 1.57 Version which make the multi-serial
   port modules (I-8142iW / 8142W / 8144W / 8144iW / 8112W / 8114W) fail.
2. Speed up the "Bus7000B and Bus7000" a little .


**************************************************************************
*  1.59 , Nov.29,2013
**************************************************************************
1. Upgrade the Schedult utility (Schedule_in_PAC.exe) to version 1.0.0.2 to 
   fix a "Special day" setting problem.
2. Speed up the scan rate of the "Bus7000B" and "Bus7000" a little.


**************************************************************************
*  1.60 , Mar.20,2014
**************************************************************************
1. Fix a problem when connecting GPS-721 or i-87211W.
   Now make the satelitte bytes more flexible (1 or 2 bytes are ok)
   Now make the GPS mode flexible (1, 2, 6, ...)


**************************************************************************
*  1.61 , Apr.18,2014
**************************************************************************
1. Add I/O complex equipment "Ping_IP" to test the Ethernet / Internet connection.
   Can setup max. 30  IP address to test.


**************************************************************************
*  1.62 , Jun.13,2014
**************************************************************************
1. Increase the retry times when Ebus package not received. 
   Don't put it to be dead package easily.


**************************************************************************
*  1.63 , Jul.29,2014
**************************************************************************
1. Add a c-function "f_de_dir" to delete all files in a directory excludes
   files in its sub-directories.


**************************************************************************
*  1.64 , Oct.07,2014
**************************************************************************
1. Fix a bug in the schedule.c when enable a special day and then Clear it.
2. Add  COM_MRTU( 998 , TRUE )  to keep 2G/3G connected (if it is currently connected)
   when user click "stop application" on the workbench debugger window.
   To cancel this, call  COM_MRTU( 998 , FALSE )

   (* ST example :
      INIT is declared as Boolean/internal and inited as TRUE.
      TMP_BOO is declared as Boolean/interna1 *)
   if  INIT  then
      INIT := FALSE ;
      TMP_BOO := COM_MRTU( 998 , TRUE ) ;
   end_if ;

   
**************************************************************************
*  1.64A , Oct.15,2014
**************************************************************************
1.When the 2G/3G dial-up state is connected . The driver will try to ping DNS server and
  8.8.8.8every 15 minutes to test if the 2G/3G communication is ok. If both ping timeout at 15
  seconds later, the ISaGRAF PAC will automatically reset the 2G/3G module and then re-dial-up
  to recover the 2G/3G communication .
  If user don't want to ping this8.8.8.8, can modify it to ping one another ip address 
  (for example, 192.168.71.9) . Like as below code.

  (* set to ping one another IP address .
     INIT is Boolean / Internal variable and inited as TRUE
     TMP_BOO is Boolean / Internal *)
  if INIT then
     INIT := False ;
     TMP_BOO := COM_MRTU( net_addr('192.168.71.9') , TRUE ) ;
  end_if ;


**************************************************************************
*  1.65 , Oct.24,2014
**************************************************************************
Official release .


**************************************************************************
*  1.66 , Dec.09,2014
**************************************************************************
1. Increase the "mbus24r" and "mbus24r1" to read up to 255 bits for function call 1 and 2.
2. Modify dial_up_xx.DLL to make a ping every 450 seconds (old version is 900 seconds)
   and increse MAX_PING_ERR_CN from 1 to 4.


**************************************************************************
*  1.67 , Feb.09,2015
**************************************************************************
1. Add app-version and app-crc informations on the dialog window of the ISaGRAF driver .
2. Add a "Reset driver" button on the driver dialog .


**************************************************************************
*  1.68 , Mar.18,2015
**************************************************************************
1. Fix a "button not display" problem on the ISaGRAF driver dialog in some PAC.
2. Modify the default type code of I-87H17W as "07" (4 ~ 20 mA) .


**************************************************************************
*  1.69 , Apr.13,2015
**************************************************************************
1. Fix a bug in "Mbus_XR" and "Mbus_XR1" when reading Modbus Real and Long values.

**************************************************************************
*  1.70 , Jul.31,2051
**************************************************************************
1. Support I-8120W CAN bus module.
