Page 1
Part # 6077 Firmware Version 3/4.31.38 February 2018...
Page 2
Toptech Systems, Inc. Disclaimer Toptech Systems assumes no responsibility for damages resulting from installation or use of its products. Toptech Systems will not be liable for any claims of damage, lost data, or lost time as a result of using its products.
Page 5
7.2.17 114 - Real-Time Preset Total Mass Totalizers ................138 7.2.18 120 - Real-Time Sampler Total Gross Totalizers ..............138 129 – FCM Low Level Meter Status ..................139 7.2.19 133 – FCM IO Access ....................... 139 7.2.20 134 – Discrete Parameter Security settings ................140 7.2.21 135 –...
Page 6
8.3.2 Monitor Load During Delivery ......................170 ........................ 170 ND OF ATCH ROCESSING 8.4.1 Ending a Batch on MultiLoad ......................170 ..................... 171 ND OF RANSACTION ROCESSING 8.5.1 Ending a Transaction on MultiLoad ....................171 ......................171 HUTDOWN OF OFTWARE CHAPTER 9 DATA COMMUNICATION NOTES AND RECOMMENDATIONS ...........
Chapter 1 – Protocol Specification CHAPTER 1 ROTOCOL PECIFICATION The MultiLoad auto-detects four low level computer protocols for host communications. Smith Protocol Brooks Protocol Daniels Modbus-RTU Protocol Modbus- TCP/IP Protocol Note: All unknown or not allowed signal or code sequences are rejected and have no impact on the software or measurement data.
Chapter 1 – Protocol Specification MITH ROTOCOL The Smith protocol is compatible with devices from Smith Meter, such as the Accuload I and Accuload II mini- computer modes of operation. Using this protocol, MultiLoad accepts data in the format: data A1 and A2 are the last two digits of the unit address in the RCU configuration.
Chapter 1 – Protocol Specification -RTU P ODBUS ROTOCOL The Modbus-RTU protocol has been implemented to be as compatible as possible with the original published Modicon Modbus-RTU standard. Note: The Modbus protocol allows parameter register access only as defined by the explicit mapping in this manual.
Chapter 1 – Protocol Specification 1.5.3 OOPBACK AINTENANCE Note: only loopback of command supported. Diagnostic Diagnostic Quiet Time FN=8 Data MSB Data LSB CRC1 CRC2 Quiet Time Code MSB Code LSB Diagnostic Diagnostic Quiet Time FN=8 Data MSB Data LSB CRC1 CRC2 Quiet Time...
ERVICES EGISTER Not all commands native to the MultiLoad II have corresponding mapping to Modbus registers. The Extended Services register was implemented as a way to support sending and receiving native Multiload II commands across the Modbus RTU interface. Any native command listed can be sent to the MultiLoad via the extended Services Register.
Chapter 2 –MultiLoad Responses -TCP/IP P ODBUS ROTOCOL The Modbus-TCP/IP protocol has been implemented to be as compatible as possible with the original published Modbus-TCP/IP standard v1.0b. Note: The Modbus protocol allows parameter register access only as defined by the explicit mapping in this manual.
Chapter 2 –MultiLoad Responses Since Modbus addressing has been implemented in various ways over the years, to avoid confusion in this manual, the Modbus Holding Register addresses listed are the value in the register address field in the message. If it is necessary to know the formal Modbus Holding Register address, simply add 40001 to the register addresses listed in the manual.
Chapter 2 –MultiLoad Responses Next Next Register … Register Register Register Number Number FN=16 Start Start MBAP Register Register (+128 if Registers Registers error) 1.6.5 = +128) RROR ESPONSES Error MBAP FN+128 Subcode Error Sub codes are: 1 = Invalid Function Code. Indicates that the use of an invalid or unimplemented function has been attempted.
ERVICES EGISTER Not all commands native to the MultiLoad II have corresponding mapping to Modbus registers. The Extended Services register was implemented as a way to support sending and receiving native Multiload II commands across the Modbus TCP/IP interface. Any native command listed can be sent to the MultiLoad via the extended Services Register.
Chapter 2 –MultiLoad Responses CHAPTER 2 ULTI OMMAND ESPONSES <command_status> <rcu_status> <card_status> <command specific response data> For MultiLoad to acknowledge a message two conditions must be met. First the message must fit the Message Framing Protocol with a valid LRC, BCC or CRC. Second, the address specified in the first two characters of the command must match the configured MultiLoad address.
Chapter 4 – Function Commands CHAPTER 4 UNCTION OMMANDS FREBOOT Performs a software reboot of the MultiLoad RCU. FFACTORY Restores all MultiLoad registers to factory defaults. FUPDATEAPPFLASH = Updates the Flash with an uploaded image (req. W&M and a valid image) Modbus: Supported through Modbus Extended Services Registers.
Page 20
Chapter 4 – Function Commands FPccc…. Send ccc… characters to the attached printer port (if defined). FCLEARPROD Clear all product definitions (500 register) except for the 000-Unknown Product definition. FCLEARID Clear Access ID and PIN database. FCLEARCUSTOM Clears all custom logic entries. FCLEARAUDITLOG Clear Audit Log Messages stored in Multiload.
Page 23
Chapter 5 – Terminal Commands < Unlock the Display > Lock the Display Turn Character Echo On Turn Asterisk Echo On arcwh Draw Progress Box Where: r = (character) 0x20 + Top Text Row Position (0 = top, 15 = bottom) c = (character) 0x20 + Left Text Column Position (0 = left, 39 = right) w = (character) 0x20 + Width in Text Columns h = (character) 0x20 + Height in Text Rows Down...
Chapter 6 – Meter Commands CHAPTER 6 ETER OMMANDS UTHORIZE RESET RODUCT AND RESET OLUME MAMpppaiiivvvvvvvvvcc Where: ppp = The specified zero-based preset or load arm number (000-011). A = Authorize bit, 0 = Cancel Authorization, 1 = Authorize. Iii = Product Index (500 register) for the authorized product. Vvvvvvvvv = Preset volume.
Chapter 6 – Meter Commands Note: The Host will still need to send a MEB command for each preset that reaches a PRESET_END_OF_BATCH state. Modbus: Write Only Register=7044, Len=1, 16-Bit Integer (any value) ATCH OMPLETE MBCppp Where: ppp = The specified zero-based preset or load arm number (000-011). When a BC command is received, the preset flow will stop and the batch will be marked as complete.
Chapter 6 – Meter Commands RESET ESSAGE MPMpppssssssssssddddddddddddddddddddddddddddddddddddddd Where: ppp = The specified zero-based preset or load arm number (000-011). Ssssssssss = 10 Character Message. Ddddddddddddddddddddddddddddddddddddddd = 39 Character Detail Message. Displays a message for the particular preset. A detail message will be displayed when the preset is selected. Driver and acknowledge and clear the message by pressing CLR key.
Chapter 6 – Meter Commands 6.10 R & P EQUEST TATUS RESET LARMS MRSpppxxxxyyyyzzzzaaaa => RSppp… (Requested parameters as listed below). Where: ppp = The specified zero-based preset or load arm number (000-011). Xxxx = Optional response configuration bits #0 in hexadecimal as: union unsigned int value;...
Page 30
Chapter 6 – Meter Commands yyyy = Optional response configuration bits #1 in hexadecimal as: union unsigned int value; struct unsigned int preset_status_0:1; unsigned int preset_status_1:1; unsigned int preset_status_2:1; unsigned int meter_status_0:1; unsigned int meter_status_1:1; unsigned int meter_status_2:1; unsigned int component_status_0:1; unsigned int component_status_1:1;...
Page 31
Chapter 6 – Meter Commands zzzz = Optional response configuration bits #2 in hexadecimal as: union unsigned int value; struct unsigned int meter_batch_gross_del_whole:1; //Mass unsigned int meter_gross_flow_rate:1; // Mass unsigned int component_current_relative_density_tenthous:1; unsigned int component_current_bsw_hund:1; unsigned int component_current_api_gravity_tenths 1; unsigned int component_batch_bsw_hund:1; unsigned int component_batch_api_gravity_tenths:1;...
Page 32
Chapter 6 – Meter Commands unsigned int unused_14:1; unsigned int unused_15:1; } flags; } query_3; (default value 0x0000.) Defaults are compatible with previous Multiload MRS replies. To query for preset information only use: MRSppp03ff To query for preset pressure only use: MRSppp0080 To query for additive delivered only use: MRSppp8000 RS = Request Status Response ppp = The specified zero-based preset or load arm number (000-011).
Page 34
Chapter 6 – Meter Commands xxxx= preset status #0 in hexadecimal as: union unsigned int value; struct unsigned char preset_enabled:1; // preset is enabled unsigned char preset_host_enabled:1; // preset enabled by host unsigned char authorized:1; // preset available for use unsigned char flow_active:1;...
Page 35
Chapter 6 – Meter Commands yyyy= preset alarms in hexadecimal as: union unsigned int value; struct unsigned char preset_fcm_com:1; // one or more FCMs that are required for PRESET status or signals are in com error. Unsigned char preset_permissive:1; // preset permissive not active but preset is authorized to load.
Page 36
Chapter 6 – Meter Commands qqqqqqqqq= preset quantity in whole units ddddddddd = delivered gross quantity in whole units ddddddddd = delivered net quantity in whole units Note: if the Use Hundredths W&M RCU parameter is enabled, the gross and net quantity value will have an implied two decimal places. Sddddd = signed batch average temp in tenths or hundredths sddddd = signed batch average pressure in tenths or hundredths dddddd = depending on API table selected,...
Page 37
Chapter 6 – Meter Commands per meter(5): ddddddddd = meter delivered gross quantity in whole units Note: if the Use Hundredths W&M RCU parameter is enabled, the gross quantity value will have an implied two decimal places. Ddddd = meter gross flow rate in whole units Modbus : Where: p = preset (0-11), m = meter (0-4) Read Only Register=4192+p*5+m, Len=2, 32-Bit Integer (ddddddddd (gross))
Page 38
Chapter 6 – Meter Commands per component(8): ddddddddd = delivered gross quantity in whole units ddddddddd = delivered net quantity in whole units Note: if the Use Hundredths W&M RCU parameter is enabled, the gross and net quantity value will have an implied two decimal places. Sddddd = signed component batch average temp in tenths or hundredths sddddd = component batch average pressure in tenths or hundredths dddddd = depending on API table selected,...
Page 39
Chapter 6 – Meter Commands Read Only Register=5716+p*8+c, Len=2, 32-Bit Integer (sddddd (component current density)) Read Only Register=6292+p*8+c, Len=2, 32-Bit Integer (sddddd (component current relative density)) Read Only Register=6484+p*8+c, Len=2, 32-Bit Integer (sddddd (component current bsw)) Read Only Register=6676+p*8+c, Len=2, 32-Bit Integer (sddddd (component current api gravity)) NOT AVAILABLE Len=2, 32-Bit Integer (sdddd (component average api gravity)) Read Only Register=6868+p*8+c, Len=2, 32-Bit Integer (ddddddddd (gross))
Page 40
Chapter 6 – Meter Commands per additive(16): ddddddddd = delivered quantity in thousands Modbus : Where: p = preset (0-11), a = additive (0-11) Read Only Register=5908+p*16+a, Len=2, 32-Bit Integer (ddddddddd (delivered quantity in thousands)) per sampler(20) ddddddddd = sampler batch gross delivered in thousandths ddddddddd = sampler batch current target...
Page 41
Chapter 6 – Meter Commands Query 1 Responses: xxxx= preset status #0 in hexadecimal as: union unsigned int value; struct unsigned char preset_enabled:1; // preset is enabled unsigned char preset_host_enabled:1; // preset enabled by host unsigned char authorized:1; // preset available for use unsigned char flow_active:1;...
Page 42
Chapter 6 – Meter Commands xxxx= preset status #1 in hexadecimal as: union unsigned int value; struct unsigned char program_clear_errors:1; // command to clear errors unsigned char remote_clear_errors:1; // command to clear errors unsigned char driver_clear_errors:1; // command to clear errors unsigned char clearing_errors:1;...
Page 43
Chapter 6 – Meter Commands xxxx= preset status #2 in hexadecimal as: union unsigned int value; struct unsigned char permissive_out:1; // preset permissive output status unsigned char load_interrupted:1; // has loading been interrupted unsigned char clearing_batch:1; // batch in process of clearing unsigned char alt_high_flow:1;...
Page 44
Chapter 6 – Meter Commands Per meter(6): xxxx= meter status #0 in hexadecimal as: union unsigned int value; struct unsigned char program_clear_errors:1; // command to clear errors unsigned char remote_clear_errors:1; // command to clear errors unsigned char driver_clear_errors:1; // command to clear errors unsigned char clearing_errors:1;...
Page 45
Chapter 6 – Meter Commands xxxx= meter status #1 in hexadecimal as: union unsigned int value; struct unsigned char unused1_0:1; // future use unsigned char unused1_1:1; // future use unsigned char unused1_2:1; // future use unsigned char unused1_3:1; // future use unsigned char unused1_4:1;...
Page 46
Chapter 6 – Meter Commands xxxx= meter status #2 in hexadecimal as: union unsigned int value; struct unsigned char unused2_0:1; // future use unsigned char unused2_1:1; // future use unsigned char unused2_2:1; // future use unsigned char unused2_3:1; // future use unsigned char unused2_4:1;...
Page 47
Chapter 6 – Meter Commands Per component(8): xxxx= component status #0 in hexadecimal as: union unsigned int value; struct unsigned char program_clear_errors:1; // command to clear errors unsigned char remote_clear_errors:1; // command to clear errors unsigned char driver_clear_errors:1; // command to clear errors unsigned char clearing_errors:1;...
Page 48
Chapter 6 – Meter Commands xxxx= component status #1 in hexadecimal as: union unsigned int value; struct unsigned char blend_ready:1; // component blend ready unsigned char blend_complete:1; // component blend complete unsigned char flush_ready:1; // component flush ready unsigned char flush_complete:1; // component flush complete unsigned char sequential_delivery:1;...
Page 49
Chapter 6 – Meter Commands xxxx= component status #2 in hexadecimal as: union unsigned int value; struct unsigned char unused2_0:1; // future use unsigned char unused2_1:1; // future use unsigned char unused2_2:1; // future use unsigned char unused2_3:1; // future use unsigned char unused2_4:1;...
Page 50
Chapter 6 – Meter Commands Per additive(16): xxxx= additive status #0 in hexadecimal as: union unsigned int value; struct unsigned char program_clear_errors:1; // command to clear errors unsigned char remote_clear_errors:1; // command to clear errors unsigned char driver_clear_errors:1; // command to clear errors unsigned char clearing_errors:1;...
Page 51
Chapter 6 – Meter Commands xxxx= additive status #1 in hexadecimal as: union unsigned int value; struct unsigned char permissive_out:1; // permissive out output status unsigned char feedback_status:1; // additive feedback input status unsigned char wm_clear_errors:1; // command to clear errors unsigned char unused1_3:1;...
Chapter 6 – Meter Commands xxxx= additive status #2 in hexadecimal as: union unsigned int value; struct unsigned char unused2_0:1; // future use unsigned char unused2_1:1; // future use unsigned char unused2_2:1; // future use unsigned char unused2_3:1; // future use unsigned char unused2_4:1;...
Page 53
Chapter 6 – Meter Commands unsigned int unused_8:1; unsigned int unused_9:1; unsigned int unused_10:1; unsigned int unused_11:1; unsigned int unused_12:1; unsigned int unused_13:1; unsigned int unused_14:1; unsigned int unused_15:1; } flags; } query_0; (default value 0x0000.) union unsigned int value; struct unsigned int tank_status_0:1;...
Page 54
Chapter 6 – Meter Commands unsigned int unused_8:1; unsigned int unused_9:1; unsigned int unused_10:1; unsigned int unused_11:1; unsigned int unused_12:1; unsigned int unused_13:1; unsigned int unused_14:1; unsigned int unused_15:1; } flags; } query_2; union unsigned int value; struct unsigned int unused_0:1; unsigned int unused_1:1;...
Page 56
Chapter 6 – Meter Commands xxxx= tank status #0 in hexadecimal as: union unsigned int value; struct unsigned char high_high_level:1; // high high level alarm unsigned char high_level:1; // high level alarm unsigned char low_level:1; // low level alarm unsigned char low_low_level:1; // low low level alarm unsigned char bypass_alarm:1;...
Page 57
Chapter 6 – Meter Commands yyyy= tank alarms in hexadecimal as: union unsigned int value; struct unsigned char tank_fcm_com:1; // one or more FCMs that are required for TANK status or signals are in com error. Unsigned char high_high_level:1; // Tank High High Level Alarm Unsigned char high_level:1;...
Chapter 6 – Meter Commands xxxx= tank_status #2 in hexadecimal as: union unsigned int value; struct unsigned char unused2_0:1; // future use unsigned char unused2_1:1; // future use unsigned char unused2_2:1; // future use unsigned char unused2_3:1; // future use unsigned char unused2_4:1;...
Page 61
Chapter 6 – Meter Commands unsigned int unused_7:1; unsigned int unused_8:1; unsigned int unused_9:1; unsigned int unused_10:1; unsigned int unused_11:1; unsigned int unused_12:1; unsigned int unused_13:1; unsigned int unused_14:1; unsigned int unused_15:1; } flags; } query_0; (default value 0x0000.) union unsigned int value;...
Page 62
Chapter 6 – Meter Commands unsigned int unused_7:1; unsigned int unused_8:1; unsigned int unused_9:1; unsigned int unused_10:1; unsigned int unused_11:1; unsigned int unused_12:1; unsigned int unused_13:1; unsigned int unused_14:1; unsigned int unused_15:1; } flags; } query_2; union unsigned int value; struct unsigned int unused_0:1;...
Page 64
Chapter 6 – Meter Commands xxxx= sampler_status #0 in hexadecimal as: union unsigned int value; struct unsigned char program_clear_errors:1; // command to clear errors unsigned char remote_clear_errors:1; // command to clear errors unsigned char driver_clear_errors:1; // command to clear errors unsigned char clearing_errors:1;...
Page 65
Chapter 6 – Meter Commands yyyy= sampler alarms in hexadecimal as: union unsigned int value; struct unsigned char sampler_fcm_com:1; // one or more FCMs that are required for Sampler status or signals are in com error. unsigned char sampler_permissive:1; // Sampler permissive Alarm unsigned char unused02:1;...
MSSpppxxxxyyyyzzzz => SSppp… (Requested parameters as listed above). The MSS command for the MultiLoad II SMP, is identical to the MRS command but only returns 1 component instead of 8, 1 meter instead of 4, and 2 additives instead of 16 additives in the response.
Chapter 6 – Meter Commands Unsigned char low_flow:1; // flow rate was below low_flow_alarm_rate for low_flow_alarm_time seconds while attempting to flow. Unsigned char excess_flow:1; flow rate above excess_flow_alarm_rate. Unsigned char quad_encoding:1; // max_quad_errors were received. Unsigned char density_error:1; // density signal not valid or density < alarm_low_density density >...
Chapter 6 – Meter Commands unsigned char additive_fcm_com:1; // one or more FCMs that are required for ADDITIVE status or signals are in comm error. Unsigned char additive_permissive:1; // additive permissive not active but additive is authorized to load. Unsigned char additive_under_add:1; // recipe additive needed is under actual additive delivered...
Chapter 6 – Meter Commands union unsigned int value; struct unsigned char sampler_fcm_com:1; // one or more FCMs that are required for Sampler status or signals are in comm error. unsigned char sampler_permissive:1; // sampler permissive not active but sampler is authorized to load.
Chapter 6 – Meter Commands Read Only Register=N/A 6.22 S TART RESET MMSppp Where: ppp = The specified zero-based preset or load arm number (000-011). Starts flow for the particular preset. A message is placed into the Message Log when this command is executed.
Chapter 7 – Register Operations ENERIC EGISTERS 7.1.1 EGISTER YPES All registers are read and updated as positive integers even when values expressed are non-positive or fractional. In some cases a several values are concatenated bit-wise to form the register value. “unsigned int”...
Page 80
Chapter 7 – Register Operations +1234.5 12345 +0.0 +0.1 +3276.7 32767 -3276.8 32768 -0.1 65535 “signed div100” – Signed numeric value with 2 decimal places. Numeric Value Register Value +123.45 12345 +0.00 +0.01 +327.67 32767 -327.68 32768 -0.01 65535 “signed div1000” – Signed numeric value with 3 decimal places. Numeric Value Register Value +12.345...
Page 83
Chapter 7 – Register Operations TABLE_2007_53E = 1062, TABLE_2007_54E = 1063, TABLE_2007_59E = 1064, TABLE_2007_60E = 1065, TABLE_ASTM_D1555 = 1080 Note: Register value is still an integer value not an ascii char. For example, to specify TABLE_54, the ascii value of ‘A’ or 65 would be the register value, not the character’A’. “fcm address”...
Page 84
Chapter 7 – Register Operations Example #1: to specify analog input port number A04, fcm_number 1, 4-20mA signal, enabled, (0,1,0000,000100,00001) the numeric value of the bit-wise concatenation of these four different FCM addressing parameters would be 0x8081 = 32897. “language” – Enumerated language values. enum{ // Enumerated Value Register Value...
Page 85
Chapter 7 – Register Operations “meter type” – Enumerated meter type values. enum{ // Enumerated Value Register Value METER_TYPE_VOLUME_PULSE_INPUT = 0, METER_TYPE_MASS_PULSE_INPUT = 1, METER_TYPE_VOLUME_ANALOG_INPUT = 2, METER_TYPE_KROHNE_INPUT = 3, METER_TYPE_MICROMOTION_INPUT “totalizer” – Totalizer selection parameter. This type is a bit-wise concatenation of five totalizer selection parameters that is expressed as a single register value.
Page 87
Chapter 7 – Register Operations “pressure type” Select pressure type parameter enum{ // Enumerated Value Register Value PSIG = 1, // PSIG = 2, // KPA = 3 // “additive type” Select additive type parameter enum{ // Enumerated Value Register Value SOLENOID_WITH_METER = 1, PISTON_WITH_NORM_FEEDBACK...
Page 88
Chapter 7 – Register Operations “Alarm to Host Mode” Select if the alarm needs to be send to the host Enum{// Enumerated Value Register Value DISABLED = 0, ENABLED “Mass Measures” Select the UOM of Mass Enum{// Enumerated Value Register Value NO_MASS_MEASURES = 0, MASS_POUNDS...
Page 89
Chapter 7 – Register Operations “Decimal Mark” Select which decimal is used in each screen Enum{// Enumerated Value Register Value DECIMAL_MARK_TYPE_DECIMAL = 0, DECIMAL_MARK_TYPE_COMMA “Flow Rate Mode” Select which rate is used in each screen Enum{// Enumerated Value Register Value FLOW_RATE_MODE_MINUTES = 0, FLOW_RATE_MODE_HOURS...
Page 90
Chapter 7 – Register Operations PARITY_ODD PARITY_EVEN “Stop Bits” Select the number of stop bits for serial communication Enum{// Enumerated Value Register Value STOP_BITS_1 STOP_BITS_2 “Multidrop” Select which Multidrop mode to use Enum{// Enumerated Value Register Value MULTIDROP_SINGLE MULTIDROP_MULTI MULTIDROP_2WIRE “Communication Type”...
Chapter 7 – Register Operations SECURITY_COMPLEXITY_TYPE_ALL “Display Load Type” Select how the total amount of product being loaded will be displayed on the screen. Enum{// Enumerated Value Register Value DISPLAY_LOAD_TYPE_DISABLED DISPLAY_LOAD_TYPE_GROSS DISPLAY_LOAD_TYPE_NET DISPLAY_LOAD_TYPE_MASS “SCS Display Type” Select when the SCS Prompts will be displayed, either before or after the load. Enum{// Enumerated Value Register Value...
Page 92
Chapter 7 – Register Operations Modbus Default Prefix Register Description Data Type Protection Register Value Value Value Len=2 R / U Display Hundredths disable/enable Disabled General 1058 R / U Use Hundredths disable/enable Disabled W & M 1060 R / U W&M Density Lock disable/enable Disabled...
Page 93
Chapter 7 – Register Operations Modbus Default Prefix Register Description Data Type Protection Register Value Value Value Len=2 R / U Startup Keypad Locked disable/enable Disabled General 1132 R / U Screen Brightness Percent 10000 10000 General 1134 R / U W&M Key FCM# fcm address Disabled...
Chapter 7 – Register Operations 100 – B 7.1.3 EVEL ONFIGURATION EGISTERS Modbus Default Register Access Register Description Data Type Value Value Value Protection Len=2 R / U 100000 Number Bay Presets unsigned int General 1200 R / U 100001 Number of FCMs unsigned int General...
Chapter 7 – Register Operations 101 – P 7.1.4 RESET EVEL ONFIGURATION EGISTERS Note: ppp = The specified zero-based preset or load arm number (000-011). Modbus: The Modbus Preset Index Register sets the ppp index, Read/Write Register=996, Len=1, 16-Bit Integer Modbus Default Register...
Page 96
Chapter 7 – Register Operations Modbus Default Register Prefix Register Description Data Type Value Value Value Protection Len=2 R / U 101033ppp Blnd Adj Dev Vol unsigned int 65535 General 1466 R / U 101034ppp Blnd Adj Time unsigned int 65535 General 1468...
Page 97
Chapter 7 – Register Operations Modbus Default Register Prefix Register Description Data Type Value Value Value Protection Len=2 R / U 101070ppp BSW 2 Offset signed div 10 -3.00 3.00 General 1540 R / U 101071ppp Oil Density unsigned div 10 99999 General 1542...
Page 98
Chapter 7 – Register Operations Modbus Default Register Prefix Register Description Data Type Value Value Value Protection Len=2 R / U 101107ppp Unused General R / U 101108ppp Recipe Output Bit 0 FCM# fcm address Disabled General R / U 101109ppp Recipe Output Bit 1 FCM# fcm address...
Chapter 7 – Register Operations 102 – M 7.1.5 ETER EVEL ONFIGURATION EGISTERS Note: ppp = The specified zero-based preset or load arm number (000-011). mmm = The specified zero-based meter number (000-005). Modbus: The Modbus Preset Index Register sets the ppp index, Read/Write Register=996, Len=1, 16-Bit Integer The Modbus Meter Index Register sets the mmm index, Read/Write Register=998, Len=1, 16-Bit Integer Modbus Default...
Page 100
Chapter 7 – Register Operations Modbus Default Register Prefix Register Description Data Type Value Value Value Protection Len=2 R / U 102031pppmmm Excess Flow Alarm Time unsigned div 1000 65535 General 1662 R / U 102032pppmmm Analog Valve No Flow mA unsigned div 1000 0.000 20.000 0.000...
Page 101
Chapter 7 – Register Operations Modbus Default Register Prefix Register Description Data Type Value Value Value Protection Len=2 R / U 102068pppmmm Relative Density @ High Value unsigned div10000 0.0000 4.0000 1.2000 W & M 1694 R / U 102069pppmmm Relative Density Offset signed div10000 -0.3000 0.3000 0.0000...
Page 102
Chapter 7 – Register Operations Modbus Default Register Prefix Register Description Data Type Value Value Value Protection Len=2 R / U 102110pppmmm Alarm Low API Gravity unsigned div10 -1000 11000 General 1820 R / U 102111pppmmm Alarm High API Gravity unsigned div10 -1000 11000 11000...
Chapter 7 – Register Operations 103 – C 7.1.6 OMPONENT EVEL ONFIGURATION EGISTERS Note: ppp = The specified zero-based preset or load arm number (000-011). ccc = The specified zero-based component number (000-007). Modbus: The Modbus Preset Index Register sets the ppp index, Read/Write Register=996, Len=1, 16-Bit Integer The Modbus Component Index Register sets the ccc index, Read/Write Register=997, Len=1, 16-Bit Integer Modbus Register...
Page 104
Chapter 7 – Register Operations Modbus Register Prefix Register Description Data Type Min Value Max Value Default Value Protection Len=2 R / U 103031pppccc Fallback Decrease Rate unsigned int 9999 General 1862 R / U 103032pppccc Fallback Retry Min Pressure unsigned div100 999999 General...
Page 105
Chapter 7 – Register Operations Modbus Register Prefix Register Description Data Type Min Value Max Value Default Value Protection Len=2 R / U 103068pppccc Unused General 1936 R / U 103069pppccc Unused General 1938 R / U 103070pppccc Unused General 1940 R / U 103071pppccc Output Pulse FCM# fcm address...
Chapter 7 – Register Operations 104 – A 7.1.7 DDITIVE EVEL ONFIGURATION EGISTERS Note: ppp = The specified zero-based preset or load arm number (000-011). aaa = The specified zero-based additive number (000-0015). Modbus: The Modbus Preset Index Register sets the ppp index, Read/Write Register=996, Len=1, 16-Bit Integer The Modbus Additive Index Register sets the aaa index, Read/Write Register=999, Len=1, 16-Bit Integer Modbus Register...
Page 107
Chapter 7 – Register Operations Modbus Register Prefix Register Description Date Type Min Value Max Value Default Value Protection Len=2 R / U 104036pppaaa Over Add Alrm # Inj unsigned int 65535 Conditional 2072 R / U 104037pppaaa Check Add Tol Time unsigned int 65535 Conditional...
Chapter 7 – Register Operations 108 –T 7.1.8 RACE EVEL ONFIGURATION EGISTERS “Modbus Trace Level” Select the trace level for outgoing Modbus communications Enum{// Enumerated Value Register Value MODBUS_TRACE_LEVEL_DISABLED MODBUS_TRACE_LEVEL_BASIC MODBUS_TRACE_LEVEL_ADVANCED Modbus Register Prefix Register Description Date Type Min Value Max Value Default Value Protection Len=2 R / U 108000...
Chapter 7 – Register Operations Modbus Register Prefix Register Description Date Type Min Value Max Value Default Value Protection Len=2 R / U 110007 Com1 SSL Port (7011) disable/enable Disabled General R / U 110008 Com2 Port(7002) disable/enable Enabled General R / U 110009 Com2 SSL Port (7012)
Chapter 7 – Register Operations R / U 111006ttt Tank Low Low Level FCM# fcm address Disabled General R / U 111007ttt Tank Level Bypass FCM# fcm address Disabled General R / U 111008ttt Active Tank FCM# fcm address Disabled General R / U 111009ttt Alarm Out FCM#...
Page 111
Chapter 7 – Register Operations R / U 116004 Minimum Password Length unsigned int General R / U 116005 Max Retry Attempts unsigned int 65535 General R / U 116006 Lockout Duration in Minutes unsigned int 65535 General R / U 116007 Password History Storage unsigned int...
Chapter 7 – Register Operations 7.1.13 117 –R EPORT EVEL ONFIGURATION EGISTERS Note: rrr = The specified zero based report type (000= Transaction Report, 001= Sample Pot Report, 002= Meter Report). Modbus Register Prefix Register Description Date Type Min Value Max Value Default Value Protection Len=2 R / U 117000rrr...
Page 125
Chapter 7 – Register Operations If type -= ALWAYS_FALSE or ALWAYS_FALSE, (No Further Parameters) If type -= ASSIGN or NOT, xxxxx Where: xxxxx = Custom logic index (0000-1023). Modbus: Read/Write Register=298, Len=1, 16-Bit Integer (xxxxx) If type -= any other valid type, xxxxxyyyyy Where: xxxxx = Custom logic index (0000-1023).
Page 126
Chapter 7 – Register Operations Modbus: Read/Write Register= 300, Len=1, 16-Bit Integer (lllll) If type -= PRESET_TOTALIZER_RT, rrrrrppppp Where: rrrrr – Preset Totalizer Real Time Parameter Type as custom_logic_preset_totalizer_real_time_prompt[] {"GrossTotalizer" } // 00001 {"NetTotalizer" } // 00002 {"MassTotalizer" } // 00003 {"AuthGrossTot"...
Page 127
Chapter 7 – Register Operations {"RBckflwGrossTot"} // 00009 ppppp – Zero-based preset number (00000-00011). lllll = Zero based meter number (00000-0005). Modbus: Read/Write Register=298, Len=1, 16-Bit Integer (rrrrr) Modbus: Read/Write Register=299, Len=1, 16-Bit Integer (ppppp) Modbus: Read/Write Register= 300, Len=1, 16-Bit Integer (lllll) If type -= COMPONENT_TOTALIZER_RT, rrrrrppppplllll Where: rrrrr –...
Page 129
Chapter 7 – Register Operations U200aabbccddeeff => 0?0200 Where: aabb = BOL Line and Position Number for the BOL Number ccdd = BOL Line and Position Number for the Card Number eeff = BOL Line and Position Number for the Company Modbus: Read/Write Register=350, Len=1, 16-Bit Integer (aa) Read/Write Register=351, Len=1, 16-Bit Integer (bb)
Page 130
Chapter 7 – Register Operations ee = BOL Position Number for the Product Net Volume ff = BOL Position Number for the Product Average Temp gg = BOL Position Number for the Product Preset Number hh = BOL Position Number for the Product Gravity/Density ii = BOL Position Number for the Product Pressure jj = BOL Position Number for the Product Alarm kk = BOL Position Number for the Compartment Number...
Page 131
Chapter 7 – Register Operations Mass Positions are not available via Modbus protocol R300iiill => 0?0300iiill… U300iiill… => 0?0300iiill Where: iii = BOL Literal Line Index (0-29) Note: For Modbus, the Modbus Custom Logic Index Register sets the iii index. Modbus: Read/Write Register=417, Len=1, 16-Bit Integer (iii) ll = BOL Line Number …...
Chapter 7 – Register Operations 7.1.17 800 – T RANSACTION RCHIVE EGISTERS R005 => 0?0BBBBB Where: BBBBB = BOL Transaction Number of Current or Last Transaction completed. Modbus: Read Only Register=48, Len=1, 16-Bit Integer R800BBBBII => 0?0800BBBBII… (or) R800BBBBIIII => 0?0800BBBBIIII… Where: BBBB = BOL Transaction Number Note:...
Page 133
Chapter 7 – Register Operations Read/Write Register=7842, Len=25, Characters (bbbb) Read/Write Register=7867, Len=25, Characters (cccc) Read/Write Register=7892, Len=25, Characters (dddd) Read/Write Register=N/A, Len=25, Characters (eeee) if BOL Detail Line Index > 00, IIBBBBppptthhhccccccgggggggggnnnnnnnnnttttddddmmrrrrssssssttttuuuuuuvvvvvww wxxxxxxxxzzzzzzzzzaaaaabbbbbbccccccddddd (or) IIIIBBBBppptthhhccccccgggggggggnnnnnnnnnttttddddmmrrrrssssssttttuuuuuuvvvvvww wxxxxxxxxxzzzzzzzzzaaaaabbbbbbccccccdddddeeeeee II (or) IIII = BOL Detail Line Index BBBB = BOL Transaction Number ppp = Preset Number tt = Detail Type,...
Chapter 7 – Register Operations DD = Day (01-32) HH = Hours (00-23) MM = Minutes (00-59) SS = Seconds (00-59) Note: Update will only occur if new time is different from current time by number of seconds specified by R014 (Min Time Change Secs).
Chapter 7 – Register Operations Note: if the Use Hundredths W&M RCU parameter is enabled, the preset, meter and component gross quantity values will have an implied two decimal places. AAAAAAAAA… = Additive Total Gross Totalizers in Thousands, (16 additives, 9 digits per totalizer.) Modbus: Where: p = preset (0-11), m = meter (0-4), c = component (0-7), a=additive (0-15)
(no offset added) if FCM port number is 10, sttttt Where: sttttt = Temp in Hundreds from Toptech RTD Module, FCM II or I/O Board (no offset added) Note: All Temps in C or F depending on Register R100003 ("Temps in F").
Chapter 7 – Register Operations Modbus: Supported through Modbus Extended Services Registers. U133fffpppd => 0?0133fff Where: fff = FCM number (000-031). ppp = FCM port number (0-35) d = Set new state of digital port (‘0’ – Off, ‘1’ – On) Note: States commanded with R133 are OR’d with any other functionality already assigned to the port) 7.2.21 134 –...
Chapter 7 – Register Operations Not Supported U135rrrs => 0?0135rrr Where: rrr = generic register numbered function s = Set security level (0-9) this can be formatted with up to 8 leading zeroes. Communications Network Alarms Custom Logic Access ID Date Time Trace Alibi Labels...
Chapter 7 – Register Operations 7.2.24 140 –C URRENT ATITUDE ONGITUDE POSITION EGISTERS ULTI OBILE R140 => 0?0140+lllllllll+ooooooooo Where: +lllllllll = Current Latitude Position. +ooooooooo = Current Longitude Position. Note: Latitude format (S 90 to N 90) is: if Latitude >= 0 then "N" else "S" integer_degrees = abs(Latitude) / 60000 float_minutes = (abs(Latitude) % 60000) / 1000 Note: Longitude format (180 E to 180 W) is:...
Chapter 7 – Register Operations Where: ppp = The specified zero-based preset or load arm number (000-011). NNNNNNNNNN = 10 Character Preset Name CCC… = Component Product Index (500 register) for each component (8 component indices, 3 digits per index.) AAA…...
Chapter 7 – Register Operations 7.2.29 500 - P RODUCT EFINITION EGISTERS R500iii => 0?0500iiiHCCCCCCLLLLLLLLLLLLLLLLLLLLLLLLLDDDDDDDDDDCCCPPPPP…AAAPPPPP… U500iiiHCCCCCCLLLLLLLLLLLLLLLLLLLLLLLLLDDDDDDDDDDCCCPPPPP…AAAPPPPP… => Where: iii = The specified zero based product index (000-099). Note: For Modbus, the Modbus Product Definition Index Register sets the iii index. Modbus: Read/Write Register=2200, Len=1, 16-Bit Integer (iii) H = Hazard Index (standalone use only).
Chapter 7 – Register Operations (For example 0000000000000001 = Sample Batch Access is enabled) rrrr = Driver Authorized Product Index (0 means All products, anything else is the index into the list of the 100 product recipes) Modbus: Read/Write Register=2301, Len=2, 32-Bit Integer (cccccccc) Read/Write Register=2303, Len=1, 16-Bit Integer (pppp) Read/Write Register=2304, Len=1, 16-Bit Integer (mm) Read/Write Register=2305, Len=1, 16-Bit Integer (l)
Chapter 7 – Register Operations nnnnnnnnnnnnnnn = Site Name (15 Characters Padded) +lllllllll = Site Latitude Position. +ooooooooo = Site Longitude Position. Note: An Update to index 0 will clear the entire list. Note: Latitude format (S 90 to N 90) is: if Latitude >= 0 then "N"...
Chapter 7 – Register Operations yymmdd = Year, Month, and Day of log message hhmmss = Hour, Minute, and Second of log message …. = Text of log message (max length 80 characters) Modbus: Supported through Modbus Extended Services Registers 7.2.44 950 - C URRENT RIVER...
Chapter 7 – Register Operations ‘D’ = Enter ‘E’ = CLR Modbus: Read Only Register=2850, Len=1, Character (c) 7.2.48 962 - C URRENT RIVER R962 => 0?0962sss… Where: sss… = Driver card data string. For HID 26-bit Prox Cards, 0=yy=0000000=xxxxxxxx=01 – Card number that was read from the card. Where: yy is the facility number (00-99) xxxxxxxx is the card number (00000000-00065535).
Chapter 8 – Communication Trace Example CHAPTER 8 OMMUNICATION RACE XAMPLE The following is an example of a typical communication session with MultiLoad starting with host system startup, driver card in, transaction authorization, batch authorization, end of batch processing, and host system shutdown.
Chapter 8 – Communication Trace Example Sent:(U5000270000900Red Dye REDDYE 02710000000000000000000000000000000000000000000000000000000000000260000000000000000000000 00000000000000000000000) Received: (000) Sent:(U5000280000500Winter Additive WINADD 02810000000000000000000000000000000000000000000000000000000000000270000000000000000000000 00000000000000000000000) Received: (000) Modbus: For each recipe: Fn=0x06, Write Recipe Index to Register 2200 Fn=0x16, Write Recipe Data to Registers 2201 … 2267 (both writes can be done at the same time with one Fn=0x16 command) 8.1.3 PDATE...
Chapter 8 – Communication Trace Example Sent:(FPOWERUP) Received:(000) logmsg_queued bit is set Modbus: Fn=0x06, Write 0 to Register 7012 Sent:(R910) Received: (00091000010515153200REGAINED COMMUNICATION WITH HOST.) host_up bit is clear Modbus: Fn=0x03, Read Registers 2600 ... 2685 Sent:(FHOSTUP) Received: (000) Modbus: Fn=0x06, Write 0 to Register 7013 RANSACTION UTHORIZATION...
Chapter 8 – Communication Trace Example Fn=0x03, Read Registers 4084 … 4091 (Preset Net Volumes) Etc… Send end batch command to allow MultiLoad to clear batch totals. Sent:(MEB000) Received: (0T1) Modbus: Fn=0x06, Write Register 7069 When preset state returns to PRESET_IDLE, prompting for next batch can begin again. ND OF RANSACTION ROCESSING...
DROPPED OMMUNICATIONS Toptech Systems has specialized hardware that will support multi-dropping of devices on a single RS-232 communication line. This is accomplished by tri-stating or disconnecting the transmitter of a device when it is not transmitting on the communications line. This is similar to the RS-485 multi-dropping method. Due to the tri-stating of the transmitters, the transmit circuit is 'floating' when no device is transmitting.
AC circuits be protected with optical isolation devices. The RS-232 to RS-485 converters that Toptech supplies provide this isolation. We also provide an RS-232 optical isolation device for RS-232 lines. Similar devices are available from Black Box Corporation and Burr-Brown. One isolation device must be installed on each data communications line.
Chapter 9 – Data Communication Notes and Recommendations CHAPTER 10 ARAMETER CCESS ECURITY This topic provides introduction and communication methods for utilizing Multiloads parameter security feature. 10.1 U NDERSTANDING NEW USER AND ECURITY EATURES The discussion below describes new features of Multiload. It may be beneficial to have an active MultiLoad of version x.31.22 or later available.
Page 175
Chapter 9 – Data Communication Notes and Recommendations Comm, Network, Alarms, Custom Logic, Access ID’s, Date & Time, Trace, Alibi Labels, Hazard Labels, Prompts, BOL, SD Card, Host, Factory Defaults. Access Security levels Much like that of a user having an assigned security level with a potential rights limitation on what parameters they can change, there are other sources outside of a user that has ability to modify parameters.
Need help?
Do you have a question about the MultiLoad II and is the answer not in the manual?
Questions and answers