Copyright Mar. 2004 by ICP DAS CO., LTD. All right reserved. This paper lists the upgraded history of the driver of Wincon-8047/8347/8747 & Wincon-8046/8346/8746. Our newly released driver can also be obtained from the following website. http://www.icpdas.com/products/PAC/i-8000/isagraf.htm Warning: The copyright of the firmware and ISaGRAF embedded driver belongs to ICP DAS CO., LTD. Only the W-8047, W-8347 , W-8747 & W-8046, W-8346 , W-8746 have registered a legal ISaGRAF Target license. Trademark: Products, names and trade names appeared belongs to their respective owner. Note: ************************************************************************** 1. Wincon-8x47/8x46's driver is modified from the W-8x37/8x36's driver. They are similiar but different. The Wincon-8x47/8x46's driver can not run in W-8x37/8x36. And also, Wincon-8x37/8x36's driver can not run in W-8x47/8x46. 2. The first released version of Wincon-8x47/8x46's driver is "3.25" ************************************************************************** ************************************************************************** * 3.25 , Mar.23,2006 ************************************************************************** 1. Add one function "PLC_mode" to change PLC speed, For example: (* 0: Fast Mode, Default setting, the minimum PLC scan time is 4 ms 1: Slow Mode, the minimum PLC scan time is about 6 to 7 ms 2: Slower Mode, the minimum PLC scan time is about 9 to 11 ms 3 or other value: Slowest Mode, the minimum PLC scan time is about 19 to 21 ms *) (* TMP is declared as Boolean internal variable *) (* INIT is declared as Boolean internal variable and init at TRUE *) if INIT then INIT := False ; (* Only do it once in the 1st PLC scan *) TMP := PLC_mode(2) ; (* Set PLC speed to 2:slower mode *) end_if ; 2. Add IO complex-equipment "Rtu_Slav". It can setup to add 4 more Modbus RTU Slave ports in COM5, COM6, COM7 or COM8 (i-8112/8114/8142/8142i/8144 in slot 1 or slot 2) 3. Wincon-8x47/8x46's Ebus must install in LAN2. ************************************************************************** * 3.26 , May.17,2006 ************************************************************************** 1. Add function block - "i_7777" & "i7k87k" 2. Fix bug of "i_7063d" 3. Firmware: Modify driver to call GO_7000_87K( ) & GO_COM1_IO( ) in isa_main( ) 4. Fix a bug when setting wrong range of I-87018. " ... CRC error ..." 5. Modify driver to support SCADA requesting bits by Modbus request to max 1968 booleans. Original is 255 booleans only for one Modbus request. 6. Modify driver to support SCADA requesting words by Modbus request to max 123 words. Original is 122 words only for one Modbus request. 7. Fix a bug of Ebus can not deliver integer package No of 17 to 128. 8. Add function of get_info( ) which can request controller's Net-ID 9. Add function of s_MB_adr( ) which can define Modbus Network address No. to "Variable Array". 10. To declare a ISaGRAF version 3.4 (or 3.5) "Variable Array", please add 2 more lines on the top of the "isa.ini" file in the ISaGRAF sub-directory "C:\ISAWIN\EXE\". And then when you open the ISaGRAF workbench, there will be a "DIM" area you can assign in the Dictionary declaration windows. inside c:\isawin\exe\isa.ini, adds 2 lines [DEBUG] arrays=1 Manual: Please refer to below Manual for "Variable Array". A. Wincon-8xx7 CD-ROM: \napdos\isagraf\wincon\english_manu\variable_array.pdf or B. ftp://ftp.icpdas.com/pub/cd/wincon_isagraf/napdos/isagraf/wincon/english_manu/variable_array.pdf 11. When Redundant system ("rdn_m" or "rdn_s" ) is using, the Modbus RTU slave port will response nothing if the controller is Redundant in-Active. Only the Active controller's Modbus RTU salve port will response. So The HMI linking to the Modbus RTU slave port of these two Controllers will have no problem if they have the same Net-ID setting & different IP setting. Only one will response the HMI's Modbus RTU request. Manual: Please refer to below Manual for Controller Redundancy. A. Wincon-8xx7 CD-ROM: \napdos\isagraf\wincon\english_manu\redundancy.pdf or B. ftp://ftp.icpdas.com/pub/cd/wincon_isagraf/napdos/isagraf/wincon/english_manu/redundancy.pdf 12. Modify i-8080 driver to Kevin's 2.04 version. ************************************************************************** * 3.27 , July.04,2006 ************************************************************************** 1. Improve code to protect isawincon.exe when under ethernet flood attack 2. Using Fast I/O Read & Write ************************************************************************** * 3.28 , July.20,2006 ************************************************************************** 1. Add a command line feature. If "\CompactFlash\ISaGRAF\ibatch.txt" is found, the isawincon.exe will execute the command line listed in it after 10 seconds. For example, the "\CompactFlash\ISaGRAF\ibatch.txt" could be route.exe add 192.168.100.0 mask 255.255.255.0 192.168.0.30 Then running iswincon.exe 10 seconds later, it is executed once. 2. Fix a bug in wincon8xx7.c , IO memory mapping address is modified. 3. Add i-8KE4-MTCP & i-8KE8-MTCP I/O, refer to description of below items or http://www.icpdas.com/faq/isagraf.htm - "FAQ - 042" IO conplex equipment: i8ke C functions : i8ke_b , i8ke_n , i8ke_f , i8ke_b_a , i8ke_n_a , i8ke_f_a 4. Redundancy solution now support i-8KE4-MTCP & i-8KE8-MTCP I/O, please set IO complex equipment - "rdn" - "RDN_ip" - "Remote_IO_type" as 2. Set 2nd IP address of W-8x47 to "rdn" - "RDN_ip2" - "Master_IP2" & "Slave_IP2" will make redundancy solution more safe. If one cable is break, the other one still works. ************************************************************************** * 3.29 , Aug.09,2006 ************************************************************************** 1. Add IO board - "dis_stop" 2. Fix a bug of function - "Bin2Eng" 3. Add one more parameter - "Send_Time_Gap" of IO complex equipmenet - "Udp_ip" 4. Fix a bug of "Udp_ip" 5. Fix a bug of connect HMI to multi-drop of W-8xx7 via modbus RTU RS-485 6. Add IO complex equipment - "Tcp_clie" & c-functions - "Tcp_send" & "Tcp_recv" 7. Modify "i8ke" driver to become more efficient. ************************************************************************** * 3.30 , Aug.16,2006 ************************************************************************** 1. Fix a bug of I-87K I/O in slot 1 to 7. 2. Fix a bug of calculating PLC scan time. 3. Modify W-8x47 / 8x46 's "i8ke" to be more efficient. ************************************************************************** * 3.31 , Sep.20,2006 ************************************************************************** 1. Fix a bug of "bus700b" when "checksum_flag" is enabled 2. Add more delay (6) to (20) in i_8017h.c to fix a bug when using i-8017h 3. Modify i-8080 driver to 2.05 version. 4. Add "special parameter for temperature input board (for example, M-7018R, M87018R, M-7019R & M-87019R) to get clear or input value" into "mbus_r" & "mbus_r1" 5. Add FRNET IO complex board "i_8072" & c-function "fr_b" & "fr_b_a" ************************************************************************** * 3.32 , Oct.19,2006 ************************************************************************** 1. Modify "mbus" & "mbus_asc" to wait > 3.5 bytes time after complete slave's response is received, then sending next command. ************************************************************************** * 3.32B , Oct.31,2006 ************************************************************************** 1. Add c-function blocks "i_7017rc" for RS-485 IO modules - i-7017C & i-7017RC 2. Add c-function blocks "i_87017r" for RS-485 IO modules - i-87017RC 3. Add io board - "i87017rc" for IO board - i-87017RC 4. modify c-function "A4_20_to" to accept Range = 16#7 & 16#1A 5. modify a bug of i-87K IO plug in slot 1 to 7 - give "pIsaNameOf87k" a fixed address 6. Modify IO board "i_87019" to accept range code from 08 to 0D 7. Add IO board "i_87015f". Remove original "i_87015" . Please connect "i_87015f" when using i-87015 : 7-Ch. RTD input. Each channel can be set to different Range Code setting. 8. When W-8x47/8x46 connecting Modbus TCP/IP IO : i-8kE4-MTCP & i-8KE8-MTCP, it is better to connect from W-8x47/8x46's LAN1 to these Modbus TCP/IP IO. ************************************************************************** * 3.33 , Nov.15,2006 ************************************************************************** 1. Fix a bug of "i_7051d" function block (old driver signal is reversed) 2. Modify code in Tamp0get.c & Tamp0put.c , Search "Nov.02,2006" 3. Modify Modbus RTU Slave (RS232/485) to check (nbi, nbb) & (nbw, nbb) 4. Fix a bug of i-8080 Up/Counter value drop or rise about 65536 suddenly. Fix a bug of i-8080 DIR/Pulse & Up/Count mode, the counter value now can reverse. Since ISaGRAF interger value is in range of -2,147,483,648 to + 2,147,483,647 (signed 32-bit Integer format), so the i-8080 counter value in ISaGRAF is as below Counter value range: Up Count: 0 -> 1 -> 2 ... ---> 2,147,483,647 (Hex is 7FFFFFFF) -> -2,147,483,648 (Hex is 80000000) -> -2,147,483,647 ... ---> -1 (Hex is FFFFFFFF) then -> back to 0 again DIR/Pulse: Starting at value of 0, can be forward or backward depends on the direction. range is -2,147,483,648 ~ 2,147,483,647 Up/Down: Same as DIR/Pulse mode. Note: 1. DIR/Pulse & Up/Down mode are similiar as Encorder input. The counter value can be forward or backward in the range of -2,147,483,648 ~ 2,147,483,647 To use DIR/Pulse or Up/Down properly, please always limit the actual input count in the range of -2,147,483,648 ~ +2,147,483,647 2. The Up Count mode starting at 0 will max go up to 2,147,483,647, then go to -2,147,483,648 when the next count is coming. And then ... go to -1 then back to 0 again. If user's HMI/SCADA software supports "unsigned 32-bit Integer format" , the counter value in the HMI/SCADA can be "0 ... to +4,294,967,295 then back to 0 at next count" if setting as "unsigned 32-bit Integer format" in the HMI/SCADA siftware. However in ISaGRAF it always starts at 0 ... to 2,147,483,647, then go to -2,147,483,648 when the next count is coming. And then ... go to -1 then back to 0 again. ************************************************************************** * 3.34 , Dec.20,2006 ************************************************************************** 1. Modify "SettingPage.cpp" & "WebServerPage.cpp". Search "Nov.20,2006" 2. When isawincon.exe is starting, the "ISA11" , "ISA16" 's file attribute is modified to Archive search "Nov.20,2006" in "wincon8xx7.c" 3. Increase Ebus Master cycle time from 50 to 60 ms. 4. Modify c-function "str_real" to accept SPACE, TAB, ENTER, LF character. like str_real(' 1.2345 ') now return a correct REAL value = 1.2345 (* old version accept only str_real('1.2345'), if give str_real(' 1.2345 '), it retruns a error value = 1.23E-20 *) 5. Reduce the Ebus Max. sending package size from (768-24) to (512-24) to compatible with I-8x37 & I-7188EG. ************************************************************************** * 3.35 , Jan.09,2007 ************************************************************************** 1. RDN: Increase the timeout time for RS-485 remote IO. Original is 250 ms. Now is the I/O module number x 250 ms (SerialComm_V2.c modified) 2. Add c-function : EEP_F_R , EEP_F_W for processing REAL value in EEPROM 3. Add c-function block : EBUS_F_R , EBUS_F_W for for processing REAL value in EBUS If you don't have the block definition in your ISaGRAF workbench, please visit http://www.icpdas.com/products/PAC/i-8000/isagraf.htm to download "ICP DAS Utilities For ISaGRAF" 4. Increase EBUS package number to max. 256 packages 5. Modify Local fault and Global fault definition as below -------------------------------------------------------------------------------------------- Local & Global Fault definition: ----------------------------------------------------------------------- ERROR No. Description ----------------------------------------------------------------------- 101 : Global fault 102 : S_R_R Float error 103 : R_MB_REL Float error 104 : INT_REAL Float error 105 : RETAIN_F Float error 106 : RETAIN_X Float error 107 : Real divided by 0 108 : Integer divided by 0 109 : RETAIN_A Float error 110 : Real multiply error 111 : Real division error 112 : Real addition error 113 : Real sunstraction error 114 : EEP_F_R Float error 115 : EBUS_F_R Float error 116 : FBUS_F_R Float error 117 : F_REAF_F error (For Wincon-8xx7) 118 : I-87K I/O not found 119 : ARY_F_R Float error -------------------------------------------------------------------------------------------- ************************************************************************** * 3.36 , Feb.15,2007 ************************************************************************** 1. Add virtue IO board - "IO_state" to test if IO board in slot 1 to 7 working well. Search "Jan.22,2007" in *.c & *.h 2. Add virtue IO board - "echo_tim" to set delay time of response of Modbus RTU Slave port (one of COM2 and COM3 RTU Slave port). Search "Jan.23,2007" in *.c & *.h 3. Add "Msg_F" function to extract some REAL values from a string (Message) Demo program: wdemo_52 , wdemo_54 at ftp://ftp.icpdas.com/pub/cd/wincon_isagraf/napdos/isagraf/wincon/demo/ 4. Add "Msg_N" function to extract some Integer values from a string (Message) Demo program: wdemo_53 , wdemo_53 at ftp://ftp.icpdas.com/pub/cd/wincon_isagraf/napdos/isagraf/wincon/demo/ 5. Add Web HMI 's \Web_Data1 path. to frequently record data. Please refer to "whmi_12" demo. at ftp://ftp.icpdas.com/pub/cd/wincon_isagraf/napdos/isagraf/wincon/demo/ & ftp://ftp.icpdas.com/pub/cd/wincon_isagraf/napdos/isagraf/wincon/webhmi_demo/ (Modify WebServerPage.cpp & W-8xx7.c) 6. Add c-function-blocks : "i_7018z" and "i_87018z" for related RS-485 remote I/O module 7. Add I/O board : "i_87018z" for i-87018z plugged in slot 1 to 7 8. Add W-8xx7 to support functions : ARcreate( ) , ARwrite( ) , ARread( ). The first parameter of these 3 functions should be always 1, not supporting other value. Max. integer number can be allocated by ARcreate( ) is 3,000,000. Each is 32-bit format. That is totoal memory can be allocated is 3,000,000 x 4 = 12,000,000 bytes. 9. Modify bus7000 (bus7000b) to wait some milli-second when it receive the complete response from the remote IO module, then send next command. Search "Feb.13,2007" in SerialComm_V2.c 10. Add parameter of Delay_time2 to Delay_tim5 in I/O complex equipment - "RTU_slav" ************************************************************************** * 3.37 , May.09,2007 ************************************************************************** 1. Reduce "RDN_DATA_SIZE" from 20000 to 10000 in rdn.h 2. Add "Security_passwd" parameter in IO complex equipment - "tcp_clie" When value of "Security_passwd" is not zero, the TCP/IP protocol will add 4 more checksum bytes. 3. Add "Security_passwd" parameter in IO complex equipment - "udp_ip" When value of "Security_passwd" is not zero, the UDP/IP protocol will add 4 more checksum bytes. Demo program & description: www.icpdas.com - FAQ - Software - ISaGRAF - 065 4. Modify code to do proper operation when using such as, ANA(1.5E+20), ANA(-2.0E+19), TMR(2.0E+13) or TMR(-1.0). An float error message 121 or 122 will be display in the ISaGRAF debugger windows. 5. Modify code to do proper operation when floating point calculation of * , / , + or - is out of 32-bit float range. An float error message 110 , 111 , 112 or 113 will be display in the ISaGRAF debugger windows. 6. Modify code to do proper operation when POW( ) and EXPT( ) calculation is out of 32-bit float range. An float error message 123 will be display in the ISaGRAF debugger windows. 7. Add functions - "net_addr" , "net_ntoa" and "int_str3" Demo program & description: www.icpdas.com - FAQ - Software - ISaGRAF - 065 ************************************************************************** * 3.38 , Jul.03,2007 ************************************************************************** 1. Add functions : wdt_en and wdt_rfh 2. Add Email_ETH feature. Support mail_set and mail_snd function to send email (or with one attached file < 2MB) Please visit www.icpdas.com - FAQ - Software - 067 for more information and demo program. Demo program: Wdemo_62 , Wdemo_63 and Wdemo_64 ************************************************************************** * 3.39 , Aug.16,2007 ************************************************************************** 1. Add Modbus slave function code 08 at COM2 / COM3 or "RTU_slav" port : COM5 ~ COM8. (Fuji HMI will send 01 08 00 00 12 34 CR_H CR_L Then W-8xx7 will reply 01 08 00 00 12 34 CR_H CR_L) 2. Fix a Modbus RTU slave port bug when using as RS-485 multi-drop ports. (Aug.08,2007 in tast8lv2.c) 3. Add Modbus RTU master "frame delay time" in IO complex equipment - "mbus" and "mbus_asc" The "port_no" parameter setting is modified as below. (Aug.16,2007 in mbus.c , winconio.c , taio0ker.c) port_no : Port No. = port_no mod 100 ; Delay time = port_no / 100; delay time for sending the next Modbus frame, unit is ms, min. value is 0, max value is 1000 ms setting a value larger than 1000 will use the value of 1000 ms For Ex. (1) if port_no = 3 , then Port No. = 3 , Delay time = 0 ms. It means two Modbus frame will have at least "3.5 character" time gap. (2) if port_no = 50002 , then Port No. = 2 , Delay time = 500 ms . It means two Modbus frame will have about 500 ms + "3.5 character" time gap. ************************************************************************** * 3.40 ************************************************************************** 1. Add IO complex equipment "i_87181" (Please refer to FAQ-076 at www.icpdas.com - FAQ - Software - ISaGRAF - 076) 2. Modify the scan-time-increase problem when connecting Ru-87P4 in Checksum enabled and hostwatchdog enabled mode . (Sep.06,2007) 3. Add protection codes in Winconio.c when connecting i-87K or i-8K I/O boards in the wrong slot No. larger than slot 7 (Sep.08,2007) ************************************************************************** * 3.41 ************************************************************************** 1. Fix a communication bug. When HMI requests more than 255 bits of the W-8xx7 's COM2/3, the ANS[ ] buffer 's max. index is not enough. This version increase it from 1024 to 4096. Oct.05,2007 by Chun 2. Add I/O board "i87017A5" to support the i-87017W-A5 IO module in slot 1 to 7 which can measure +/- 50 VDC or +/- 150 VDC. 3. Add C-function block "i87017A5" which can get the value of the RS-485 remote I/O module i-87015W-A5 in i-87K4/5/8/9 expansion unit. 4. Add C-function block "i_87058" for RS-485 Remote i-87058 modules. ************************************************************************** * 4.01 , Apr.25,2008 ************************************************************************** 1. Fix a FRNET bug. FRNET D/O variable can output its initial value now. 2. Release an easy programming method of FRNET I/O. Add two function blocks "Fr_16di" & "Fr_16do" . Please refer to www.icpdas.com > FAQ > Software > ISaGRAF > 082 for more information and demo program - "wdemo_70" . 3. Add function block "i7017ra5" 4. Support CAN BUS converter i-7530. (source code: search "CAN_BUS_7530" ) Please refer to www.icpdas.com > FAQ > Software > ISaGRAF > 086 for more information and demo program - "wdmo_71a" to "wdmo_71e" Add I/O complex equipment - "CAN7530" Add c-functions - "CAN_BY_W" , "CANSTR_W" and "CANOP_ST" Add c-function block - "CAN_R" 5. Add function block "i87059" 6. No more supporting old retaine variables. Please use new retaine method, like the following. (* To_Retain is declared as Internal Boolean with initial value of TRUE *) if To_Retain then (* only run once in 1st PLC scan *) To_Retain := False ; TMP := Retain_B( B1 , 1 ) ; TMP := Retain_B( B2 , 2 ) ; TMP := Retain_N( N1 , 1 ) ; TMP := Retain_N( N2 , 2 ) ; TMP := Retain_F( F1 , 1 ) ; TMP := Retain_F( F2 , 2 ) ; TMP := Retain_T( T1 , 1 ) ; TMP := Retain_T( T2 , 2 ) ; end_if ; 7. Modbus Master code move to running in the main thread, no more running in one another thread. (Search "Feb.27,2008" ) 8. Add "SO_KEEPALIVE" mechanism to TCP socket. (search "Mar.12,2008") 9. Remove the "Cycle to Cycle" running mode. Now only supports "Real Time" mode. 10. Add function blocks: (search "Mar.31,2008") i7017z10 : to measure 10-Ch. differential Voltage and Current input of i-7017z i7017z20 : to measure 20-Ch. single-end Voltage input of i-7017z. Note: 1. 20-ch. mode doesn't support current input 2. Each channel can set to different Range type code. 11. modify "COM_MRTU" function to support COM5 ~ COM8 when the "RTU_slav" in I/O connection window is enabled. ************************************************************************** * 4.02 , May.28,2008 ************************************************************************** 1. Support "i_87089" VW sensor Master board (Vibration Wire). Please refer to www.icpdas.com > FAQ > Software > ISaGRAF > 091. 2. Fix a bug of "SYSDAT_W" and "SYSTIM_W" . The old version has problem when setting date and time both at the same time. ************************************************************************** * 4.03 , Jul.16,2008 ************************************************************************** 1. Support "mbus24r" and "mbus24r1" to read max. 24 words or max. 384 bits from Modbus device. 2. Increase the waiting time from 2 to 5 to prevent the i-8KE8-MTCP + i-87019 's rack status fluctuating in the I/O connection - i8ke. 3. Support W-8x47 new redundant solution. Please refer to www.icpdas.com > FAQ > Software > ISaGRAF > 093 4. Fix a bug that "RDN" can not work with the "Ebus_m" and "Ebus_s" (Note: W-8x47 supports Ebus in its LAN2 port. Not LAN1 port) ************************************************************************** * 4.04 , Aug.14,2008 ************************************************************************** 1. Increase the 2-byte-timeout to prevent the COM2 communication un-stable problem in ISaGRAF V3.55 debugger windows. (Search "Jul.24,2008") 2. Add the function of modifying W-8347 / 8747 's IP, Mask, Gateway, NET-ID and 1st Modbus RTU slave port setting by an USB pen driver . Please refer to below web for more. www.icpdas.com > FAQ > Software > ISaGRAF > 097 3. Fix a bug of "rdn_new" . ( RegDeleteKey() change to enable_or_disable_LAN() ) 4. Add IO board "Flow_Ctr" Type = 1 at COM2 port. Please refer to the description of IO board "Flow_Ctr" 5. Fix a Modbus Master bug in the driver version 4.03. (The mbus_n_r, mbus_nr1, mbus_r , mbus_r1 can not get correct value in version 4.03) ************************************************************************** * 4.05 , Sep.04,2008 ************************************************************************** 1. Fix a bug when using i-87181 in slot 7 2. Fix a controller-hanging problem when using many serial COM ports to connect serial devices. 3. Fix a hot-plug problem of i-87K High profile A/I cards in slot 1 thru. 7. Old version will get a value of "-32768" in some channels when plugging the i-87K High profile A/I card. ************************************************************************** * 4.06 , Nov.13,2008 ************************************************************************** 1. Fix a bug of retaine variable in S-256 / 512. Old version may have error when retainning both REAL value and Timer value. 2. Modify SerialComm_V2.c & tats8lv2.c for safety. (search "Sep.19,2008") 3. Modify the priority of "hThread_COM" Thread from 117 to 115. (search "Nov.12,2008" in tast0mai.c) 4. Re-install the ethernet driver if Modbus TCP/IP is not more connected. (search "Nov.13,2008" in RDN.c , tats8lv2.c) 5. Modify the W-8x47 eamil system to send to the mail server with different port No. Because some mail server refuse the continuous connection with a same port No. ************************************************************************** * 4.07 , Dec.15,2008 ************************************************************************** 1. Reduce the USB Mouse priority from 101 to 125 to prevent the USB problem to make the ethernet and USB mouse failed. (To make it work, the new ISaGRAF driver should run once and then re-cycle the power once. After that, the new modified USB Mouse priority is changed and saved in the registry) 2. Supports i-8080W cards. It supports fast frequency update rate than the i-8080. It is about four signal-input-cycle to upadte once . For ex. if the signal is 1KHz, it will update the frequency value once about 4 ms. (but if the ISaGRAF PLC scan time is 10 ms, it update the frequency value in 10 ms, not 4ms. because 10 > 4 ) . If the signal is 10Hz only, it will update once about 400ms. To use the i-8080W card, please connect the "i_8080w" in the ISaGRAF IO connection windows. (not "i_8080", it's for i-8080 card) . If you can not find the ISaGRAF IO definition of the "i_8080w" , please visit ftp://ftp.icpdas.com/pub/cd/wincon_isagraf/napdos/isagraf/ark/ to download the "i_8080w.xia" . Then restore it to your PC / ISaGRAF. 3. Accept old i-8017HS and current i-8017Hs (around Nov.25,2008, firmware 4) and future i-8017HS (firmware after 4) 4. Add "Mbus_XR" and "Mbus_XR1" function blocks to read max. 120 words or 60 long-integers or 60 Reals from Modbus RTU / ASCII devices. Please refer to www.icpdas.com > FAQ > Software > ISaGRAF > 101 ************************************************************************** * 4.08 , Jan.15,2009 ************************************************************************** 1. Modify the IO complex equipment - "i8ke". User can specify the "Station_No" to a value ranging from 0 to 255. Please visit the following web to download the "ICP DAS utilities for ISaGRAF" , then run setup.exe to remove it first and then re-install it once. www.icpdas.com > ISaGRAF SoftLogic PAC > Driver > "ICP DAS utilities for ISaGRAF" 2. The Wincon-8x47 / 8x46 now will not re-install the ethernet driver when power up. However it still re-install the ethernet driver once if the Modbus TCP/IP slave communication is broken more than 120 seconds. ************************************************************************** * 4.09 , Feb.05,2009 ************************************************************************** 1. If the bus7000b at COM3 has communication problem, it will auto re-install the COM3 port once in 30 seconds later. (Search "Jan.16,2009" in SerialComm_V2.c and winconio.c) 2. Fixed a bug in "RTU_Slav" which makes I-87K cards in slot 0 ... 7 no work . (search "Feb.04,2009" in winconio.c) 3. Supports c-function : "ether_en" to disable / enable Modbus TCP/IP slave. Default is enabled. (search "Feb.05,2009" in tats8lv2.c , taio0ker.c , ether_en.c , ether_en.h & grus0lib.c) 4. Fixed a bug in finding LAN1 and LAN2 IP in the registry (search "Feb.05,2009" in taio0ker.c) ************************************************************************** * 4.10 , Mar.06,2009 ************************************************************************** 1. The "ether_en( )" function now can disable / enable the Modbus TCP/IP slave function. (default is enabled) For example, the following ST statement can disable it when "enable_MBTCP" is False. However enable it when "enable_MBTCP" is True. (* Please declare "enable_MBTCP" as a boolean variable and init as TRUE *) TMP := ether_en( enable_MBTCP) ; 2. Add special usage of W_MB_ADR( 0 , 9991 , 1) and W_MB_ADR( 0 , 9991 , 0) and R_MB_ADR( 0 , 9991 ) The W_MB_ADR( 0 , 9991 , 1 ) is to enable the control of I-8KE8-MTCP I/O . The W_MB_ADR( 0 , 9991 , 0 ) is to disable the control of I-8KE8-MTCP I/O . ( If user has connectted the "i8ke" in the I/O connection windows, it is enabled by default. Then when disable it by using W_MB_ADR( 0 , 9991 , 0 ) , the W-8xx7 or the WP-8xx7 controller will lose the control of its connectted I-8KE4-MTCP and I-8KE8-MTCP I/O ) For example, use can can call below ST statment to disable / enable the control of I-8KE8-MTCP. (* The "enable_8KE8" should be declared as a boolean variable and init as TRUE *) if enable_8KE8 then TMP := W_MB_ADR( 0 , 9991 , 1 ) ; (* enable it *) else TMP := W_MB_ADR( 0 , 9991 , 0 ) ; (* disable it *) end_if ; To Read the current control state of the connectted I-8KE8-MTCP, plese use R_MB_ADR( 0 , 9991) . For example, the below ST statement return "con_state_8KE8" as 1: enabled , 0: disabled . (the "con_state_8KE8" should be declared as an integer variable ) con_state_8KE8 := R_MB_ADR( 0 , 9991 ) ; Please refer to the following Web sites for more information. www.icpdas.com > ISaGRAF SoftLogic PAC > FAQ > 042 3. Reduce each UDP package size to be less than 1400 bytes when enable the redundant system. And also increase the total allowed redundant data amount from 10,000 bytes to 16,000 bytes. (search Mar.05,2009 in rdn.c and rdn.h) 4. Support I-8084W. Please refer to www.icpdas.com > FAQ > Software > ISaGRAF > 100 ************************************************************************** * 4.11 , Mar.30,2009 ************************************************************************** 1. Fix one Ebus bug. (Search "Mar.24,2009" in winconio.c) 2. Ebus using 255.255.255.0 (Search "Mar.25,2009" in winconio.c) 3. Re-install RDN send socket 0 ~ 3 if sending them failed. (Search "Mar.26,2009" in winconio.c) 4. Re-install Ebus socket when working with "RDN_new" (Search "Mar.26,2009" in winconio.c) ************************************************************************** * 4.12 , Apr.13,2009 ************************************************************************** 1. increase the sending interval of RDN_new . 2. increse sleep time if connecting more i-8KE4/8-MTCP. 3. Ebus using xxx.xxx.xxx.255 to send 4. Add "Hex_Val" function to convert Hex. string to an integer ************************************************************************** * 4.12A , Apr.21,2009 ************************************************************************** 1. Increase the sending interval of RDN_new by 10 ms. 2. User can run PLC_MODE(1) to increse 10 more ms. User can run PLC_MODE(2) to increse 20 more ms. (* INIT3 is declarded as internal Boolean with an initial value TRUE *) if INIT3 then INIT3 := False; TMP := PLC_MODE(1); // set as slow mode end_if; 3. increse sleep time (5 to 30 ms) if connecting more i-8KE4/8-MTCP. 4. 1. Fix a bug of Retain_X and Retain_F (older version always return False) ************************************************************************** * 4.12B , Apr.27,2009 ************************************************************************** 1. Modify the "Remote_IO_type" parameter of the "RDN_new". Add supporting for 11 , 12 and 21 and 22 . Remote_IO_type : 1: I-87K and I-7000 RS-485 remote IO . All Modbus RTU slave ports and all Modbus RTU/ASCII Master ports are disabled if contoller is in-active. 11: I-87K and I-7000 RS-485 remote IO . All Modbus RTU/ASCII Master ports are disabled if contoller is in-active. 21: I-87K and I-7000 RS-485 remote IO . All Modbus RTU slave ports are disabled if contoller is in-active. 2: Modbus TCP/IP IO . All Modbus RTU slave ports and all Modbus RTU/ASCII Master ports are disabled if contoller is in-active. 12: Modbus TCP/IP IO . All Modbus RTU/ASCII Master ports are disabled if contoller is in-active. 22: Modbus TCP/IP IO . All Modbus RTU slave ports are disabled if contoller is in-active. ************************************************************************** * 4.13 , Jun.08,2009 ************************************************************************** 1. Fix code in the i-87K D/I counter in slot 1 ~ 7, the original reset_counter command is not good. Modify the counter value of i-87K D/I counter in slot 1 ~ 7 to 32-bit value ( 0 ~ 2,147,483,648 ) 2. Default enable Watchdog as 60 seconds. User can modify it by using the "wdt_en" function 3. If the commnunication of the "COM1 + i87K" fail, reset COM1 4. The ISaGRAF driver will plus one integer value by 1 every second when the project is running. And then VB.net or C#.net or EVC++ program can read this value by Quicker.dll (addr. = 8201 to read this value) . If the ISaGRAF project stop, this integer value remain at its last value. So the VB.net program can detect the value is not changed and decide to reset it if the value last for more than some specified seconds. How to reset ? Using VB.net or C#.net or EVC++ program to write a value 12345 to Quicker.dll 's Addr. 8202 to reset it. 5. Fix a bug in ethernet communication when enable the IO complex equipment "vip" 6. Fix a Modbus RTU/ASCII master communication problem when setting "RDN_New" 's "Remot_IO_type" as 22 or 21 . ************************************************************************** * 4.13A , Jun.12,2009 ************************************************************************** 1. Add c-function "Averag_N" and "Averag_F". Please refer to www.icpdas.com > FAQ > Software > 099 2. Increase the timeout setting of the remote i-7000 watchdog command from 1 loop to 6 loops to support ZigBee wireless converter - ZB-2550P / ZB-2551P (www.icpdas.com > FAQ > Software > 110) ************************************************************************** * 4.13B , Jun.23,2009 ************************************************************************** 1. Add c-function "Mbus_en" . It works only when the I/O complex equipment - "mbus" or "mbus_asc" is connected. Be careful to use the "Mbus_en" with the "RDN_new" and "RDN" , they all have the power to enable / disable the "Mbus" and "Mbus_asc" port. If giving un-proper "Mbus_en" command when the "RND_new" and "RND" is working, it may generate un-proper behavior. ************************************************************************** * 4.14 , Jul.01,2009 ************************************************************************** 1. Increase the max. number of Boolean retain variable from 1024 to 2048. ************************************************************************** * 4.14D , Aug.19,2009 ************************************************************************** 1. Modify the code of I-8K parallel digital output board to output only when any channel state is changed. 2. Increase the max. number of Boolean retain variable from 1024 to 2048. 3. Reset the Ethernet driver when detecting Ethernet communication problem. 4. Reset the COM2 port when detecting COM2 's Modbus RTU slave communication problem. 5. Reset the PAC when COMM. Thread is dead. (It seems impossibe, however add it for safety) 6. 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 . ************************************************************************** * 4.15 , Sep.02,2009 ************************************************************************** 1. Modify redundant code in W-8x47 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. ************************************************************************** * 4.16 , Nov.16,2009 ************************************************************************** 1. Add one parameter "Which_LAN" in "i8ke". 0: auto-switch between LAN1 and LAN2 1: always using LAN1 2: always using LAN2 2. Fix a bug of using I-87005W in slot 0 to 7 . 3. Fix a convesion bug of the I-87005W 's range type = 60 . 4. Add two parameter for IO complex-equipment - i_8084W > FREQ8 . The "Min_Update_Time" and "Low_High_Auto" . ************************************************************************** * 4.17 , Dec.01,2009 ************************************************************************** 1. Improve the Modbus TCP/IP Slave communication. Add more exception check. ************************************************************************** * 4.18 , Jan.21,2010 ************************************************************************** 1. The "DI_CNT" function block now supports I_8050. 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. 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. 4. If assign "port_no" of "mbus" and "mbus_asc" less than 100 in the IO connection, it will apply the "delay_time" as 100 ms (the old version is 0 ms). If user wish to set the "delay_time" as other value, please set this "port_no" larger than 100. For ex., setting the "port_no" as 2103 means using COM3 and applying the "delay_time" as 21 ms. ************************************************************************** * 4.18B , Feb.10,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. ************************************************************************** * 4.19 , Mar.09,2010 ************************************************************************** Reserved. ************************************************************************** * 4.20 , Mar.17,2010 ************************************************************************** 1. Fix the USB / VGA freeze problem. Must update the W-8x4x OS image to the "nk_8x4x_20100316_EN_CAB_V200.bin" or later version. Please download it at ftp://ftp.icpdas.com/pub/beta_version/WinCon_OS_Image/. (refer to http://www.icpdas.com/faq/isagraf.htm > FAQ-122) ************************************************************************** * 4.21 , Jun.29,2010 ************************************************************************** 1. Fix a bug when setting i-87017RCW (in slot 1 Thru. 7) 's range as 1A and 07 . 2. 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. 3. Clear all RS-485 remote data buffer as 0 when program starting up. 4. Support the I-87005. ************************************************************************** * 4.22 , Nov.04,2010 ************************************************************************** 1. Fix a problem when connecting with the Intouch SCADA via Modbus TCP .