___ |_ | | | | | /\__/ / \____/
### ## ## ##### ## ## ## ## ######
____ | _ \ | |_) | | _ < | |_) | |____/
|\ /| | ) ( | | | | | | | | | | | | | | (___) | (_______)
## ### ## ## ## ######
IMPORTANT: enter the case-INsensitive alphabetic (no numbers) code AND WRITE SOME SHORT summary of changes (below) if you are saving changes. (not required for previewing changes). Wiki-spamming is not tolerated, will be removed, so it does NOT even show up in history. Spammers go away now. Visit Preferences to set your user name Summary of change: Subpage of MembersPage/GasEngine/AutoDerivativeSmallGasEngine '''Special fw built with modbus slave on 2nd RS232''' * RS232 to RS485 adapter used, for power plant integration. eg. * slave address = 02 in examples below. ** Modbus address configurable (2 in the examples: ALS_deactivation time=0.2 sec means modbus address=2) * Modbus RTU 9600-38400(115200?),8n1 19200,8n1 recommended, configurable up to 115200,8n1 (8e1 also possible, but rarely used) ** important: '''byte stuffed format''' must be '''disabled''' in SD card logging * AIM (Outputs/Display Settings) : '''AIM Disabled''' '''ibutton_code2''' * '''H=8''' * '''L=1''' (javasolt=8n1 ; vagy esetleg ha feltétlen muszáj, akkor 8E1-hez 225 ami pont E1) '''Example communication, ECU = modbus slave''' * modbus write IAC target RPM ** to help 1500 RPM sync to grid * modbus write to iac forced PWM target => PWM => woodward valve ** control mixture/power after grid sync * modbus read RPM, CLT, MAT, MAP, lambda and other variables ---- '''2nd RS232 hardware''' for CRC protected special commands, voltage measured from pin5 (GND) base * PC side (male DSUB9) pin3=-6.4V * ECU side (female DSUB9) pin2=-8V '''1st RS232 (standard):''' * 1st RS232TX (EC18/14) (female DSUB9/3) * 1st RS232RX (EC18/15) (female DSUB9/2) * GND '''2nd RS232: (as requested for assembled VEMS ECU )''' * 2nd RS232TX (EC18/6) (female DSUB9/2) * 2nd RS232RX (EC18/12) (female DSUB9/3) * GND EC18/17 (DSUB9/5) ---- '''Modbus Write:''' * forced ignadv ** note: base timing ("TDC after trigger" value not changing during operation, set from VemsTune, primary trigger dialog). * lambda SP (SP ?) '''Examples:''' (02) 06 00 XX VV 00 (CRC CRC) '''XX table:''' * 0x31 iac forced pw = VV (IAC PWM output) ** example: (02) 06 00 31 40 00 (E9 F6) (0x31 register 0x40 00 = 25%) so VT shows IAC duty = appr 25% if all good (new, special fw needed) * 0x32 debug.enable_flags = VV ** "mde02" equivalent covers wbo2 sensor heatup before engine start: '''02 06 00 32 02 00 29 56''' ** 02 06 00 32 00 00 28 36 (mde00 equivalent, normal state, switches off the pre-running wbo2 control) * 0x33 debug.disable_flags = VV * 0x34 debug.forced_boost_tgt = VV; boost target (2kPa) * 0x35 lambda target = VV * 0x36 engine.prohibit_status = VV (00: reenables everything ... 0x42 for IGN_PROHIBIT, 0x41 for INJ_PROHIBIT, 0x50 for FUELPUMP_PROHIBIT) * other functions that should be available (if not covered by above): * engine.prohibit_status ... _BV(IGN_PROHIBIT) preferable also: _BV(INJ_PROHIBIT) _BV(STEPPER_PROHIBIT) * Disable Fuel pump ... see prohibit above * 0x37 debug.forced ign advance ( * 0.25 deg advance), 0 to disable forced advance ** example set a forced advance of 10 degrees: '''(02) 06 00 37 28 00 26 37''' * 0x38 debug.forced dwell (* 0.064msec unit), 0 to disable forced dwell ** example set a forced dwell of 3.008 msec: '''(02) 06 00 38 2F 00 14 04''' ---- '''Modbus read (subset or all) runtime vars command''' Standard modbus command 03 (Read holding registers) example: (02) 03 00 XX 00 LL (CRC) XX = index, LL = length in words (max 38) ** response is 2*LL bytes (as in modbus standard), from 2*XX byteoffset. The full set of runtime variables can be read in 1 or multiple queries. * Nonstandard command example: (02) 44 (00 e3) ** '''where 02 is modbus addr''', and last 2 bytes is CRC. ('D'=0x44 is actual command). This MIGHT CHANGE in future Register/Address for reading Eg XX=07 and LL=01 * command with CRC: [https://www.lammertbies.nl/comm/info/crc-calculation.html 02 03 00 07 00 01 35 F8] make sure '''NOT''' to send +CR/LF (eg. uncheck in brayterm) ** => ECU responds with the RPM value (byteoffset=14) in big endian format 0..25500 RPM * example to '''query a bit more bytes''' (modbus address 02, 03 respectively) * 02 03 00 02 00 06 64 3B * 03 03 00 02 00 06 65 EA '''Byte offsets''' (for some important values): * 4 MAP_hi * 5 MAP_lo * 6 MAT in Celsius +100C (MAT manifold temp) * 7 CLT in Celsius +100C (CLT=coolant preferrably measured at warmest point) * 8 TPS * 9 vbatt * 10 egoADC0 ** lambda0 = { (egoADC > 211) ? ((8 * egoADC - 1171) /32 /14.7) : (egoADC + 306) / 470 } ** so linear, but different slope from 1.1 lambda. Formula is (egoADC + 306) / 470 for 0..210 and (8 * egoADC - 1171) /32 for 211..254; while 255 is error state * 11 ego0 * 12 egoADC2 ** lambda2= ... see lambda0 above (but 2nd WBO2 not used in this engine anyway) * 13 corr_warmup * 14 rpm_hi (RPM=fordulatszám) * 15 rpm_low See <VT installdir> /config/vemsTune-v3-1.2.23.ini * Eg RPM U16 (16 bit) varible at byteoffset 16 (wordaddress=7): ** rpmVHR = scalar, U16, 14, "rpm", 1.000, 0.000 Other: * 40 latgtADC where 56 is stoich 1.0 lambdatarget according to formula: lambdatarget = { 256/(latgtADC + 200) } * 23 iac_duty (0-255 means 0-100%) (fojtó parancsolt) * 22 INTspark sparkadv, spark = { ((INTspark / 2) - 64)} - EGT1, EGT2 - worst knock value - relative knock values 0..7 - errors, trigger error (hibák) - individual power (gyújtás kihagyás) ---- '''Firmware version and old config''' <CODE> # Version: 1.2.24 # SerialNumber: v3.3_u008792 # SerialNumber Raw: 76 33 2E 33 5F 75 30 30 38 37 39 32 # CompilationTime: 2014-03-13 09:23 # Signature: VEMS v1.2.24 16x14 kpa=2,2 # CompileOptions: 000000DE (woodgas option?) </CODE> * The vemscfg seems to be from 2014-03-13 fw (perhaps a bit old, and the config was tuned later ?) ** however, '''2014-04-08 fw suspected to be the final''' (firmware info shows 2014-04-07 23:xx) ** the PWM output was changed from high-freq softpwm (sigma-delta-like) to constant freq ** perhaps some 2nd serial modbus commands were added or refined ? ** note: the released 2014-04-20 is NOT built with modbus slave functionality on 2nd serial * Note: with 1.2.24 fw: '''12..15V ignition system assumed (not 28V coils!)''' ** The bogus shutdown (trigger sensor connector disconnected or trigger lost during running) was improved after >1.2.24 (no significance for 15V igncoils, but can be useful for (btw. unsupported) 28V igncoils. Files: * [http://www.vems.hu/files/MembersPage/GasEngine/AutoDerivativeSmallGasEngine/v3.3_u008398-A-2014.02.21-09.47.20_cell_4cyl_gas_engine_base_1.2.23.vemscfg old vemscfg] * [http://vems.hu/files/MembersPage/GasEngine/MtzTractorGasEngine/ newer vemscfg, v3/8792] Optional: Add document to category: Wiki formatting: * is Bullet list ** Bullet list subentry ... '''Bold''', ---- is horizontal ruler, <code> preformatted text... </code> See wiki editing HELP for tables and other formatting tips and tricks.