通讯28CommProtocol.ASM 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. Shawn: 此油机每把枪需要独占一个COM口。
  2. Shawn: 预置加油功能,仅需要直接在油机键盘上输入金额(确保‘选择’中选中‘升’、‘金额’或者‘公斤’),然后中控直接发送E5(开机)命令即可,油机将自动识别预置金额数。
  3. Shawn: 加油过程中的金额凑整,在加油过程中按油机键盘上的‘0’,将自动停止于一个整数金额。
  4. Shawn: 加油过程中的升数凑整,在加油过程中按油机键盘上的‘.’,将自动停止于一个整数升数。
  5. Shawn: 给油机发送命令需要是在一轮完整的 “状态查询(发送以及接收各一条)” 命令之后,否则油机可能无法响应。
  6. Shawn: “恒山主板” 油机至少有两种(根据是否需要FC授权才可加油)在市场上运行的版本,第一个是PumpHandler中的这种,即必须得到FC的授权才可以加油。
  7. 第二个是PumpHandlerForSelfAuthPump中的这种,即一提枪后其自动授权自己,直接加油,这种情况下FC仅读取加油金额等。
  8. 总台与加油机通讯协议
  9. (升版,公斤版将升完全改为公斤)
  10. 一.通讯格式: 1起始位+8数据位+1停止位 电流环 波特率1200
  11. 前导码(0FFH)+长度(0-20H)+{命令(0A0H--0AFH)
  12. +参数}+校验({...}XRL结果,0FFH=0EEH)
  13. 长度=命令+参数+校验
  14. 二.命令格式: 55H:成功
  15. 1.0A0H----- (加油状态,加油现值,加油结果)
  16. 接收命令: 0FFH+02H+0A0H+校验
  17. 0FFH+12H+0A0H+流水号2+加油量3+加油金额3+单价2+状态1+定量3+
  18. 帐号2+校验1 21
  19. D7=0,不允许加油;=1允许加油;
  20. D6=1,加油结束, =0加油过程; 1-0 ---- OIL ---1 RES + LIUSHUI
  21. D5=1,油枪打开, =0油枪关;
  22. D4=1,电机开, =0电机关;
  23. D3=1,帐号加油
  24. D2=1,油票加油
  25. D1=1,D0=0, 公斤加油(升加油);升版 (公斤)
  26. D1=0,D0=1, 金额加油(升加油);升版 (公斤)
  27. D1=0,D0=0, 加升油(公斤加油);升版 (公斤)
  28. 状态1byte=8bit=D7D6D5D4D3D2D1D0
  29. 2.0A1H----- (改单价)
  30. 接收命令: 0FFH+04H+0A1H+单价2+校验
  31. 0FFH+03H+0A1H+55H+校验
  32. 3.0A2H-----
  33. 4.0A3H----- (全监控)
  34. 接收命令: 0FFH+02H+0A3H+校验
  35. 0FFH+03H+0A3H+55H+校验
  36. 5.0A4H----- (取消全监控)
  37. 接收命令: 0FFH+02H+0A4H+校验
  38. 0FFH+03H+0A4H+55H+校验
  39. 6.0A5H----- (开机)
  40. 接收命令: 0FFH+02H+0A5H+校验
  41. 0FFH+03H+0A5H+55H+校验
  42. 7.0A6H----- (关机)
  43. 接收命令: 0FFH+02H+0A6H+校验
  44. 0FFH+03H+0A6H+55H+校验
  45. 8.0A7H----- (定量公升)
  46. 接收命令: 0FFH+05H+0A7H+数量3+校验
  47. 0FFH+03H+0A7H+55H+校验
  48. 在公斤版中为定量公斤
  49. 9.0A8H----- (定量公斤)
  50. 接收命令: 0FFH+05H+0A8H+数量3+校验
  51. 0FFH+03H+0A8H+55H+校验
  52. 在公斤版中为定量升
  53. 10.0A9H----- (定量金额)
  54. 接收命令: 0FFH+05H+0A9H+数量3+校验
  55. 0FFH+03H+0A9H+55H+校验
  56. 升版公斤版相同
  57. 11.0AAH----- (取消定量)
  58. 接收命令: 0FFH+02H+0AAH+校验
  59. 0FFH+03H+0AAH+55H+校验
  60. 12.0ABH----- (补流水)
  61. 接收命令: 0FFH+04H+0ABH+流水号2+校验
  62. 0FFH+02H+0BBH+校验;0BBH:表示无该流水
  63. 0FFH+0DH+0ABH+流水号2+加油量3+加油金额3+单价2+状态1+校验;;;KG WEI KG
  64. 13.0ACH----- (输入累计)
  65. 接收命令: 0FFH+02H+0ACH+校验,
  66. 0FFH+0EH+0ACH+升累计4+金额累计4+公斤累计4+校验1 ;;;;;;;;;;LEI NO CHANGE
  67. 14.0ADH-----
  68. 15.0AEH-----
  69. 16.0AFH-----
  70. 17 0B0H-----
  71. 18 0B1H-----
  72. 19 0B2H-----
  73. 20 0B3H-----
  74. 21 0B4H-----
  75. 22 0B5H-----
  76. 23 0B6H----- 设置帐号
  77. 接收命令: 0FFH+08H+0B6H+帐号2+TYPE+定量3+校验
  78. TYPE=01, 升加油(公斤加油) ;升版 (公斤)版
  79. TYPE=02, 公斤加油(升加油) ;升版 (公斤)版
  80. TYPE=03, 金额加油(升加油) ;升版 (公斤)版
  81. 0FFH+03H+0B6H+55H+校验
  82. 24 0B7H----- 设置密度
  83. 接收命令: 0FFH+04H+0B7H+密度2(PBCD)+校验
  84. 0FFH+03H+0B7H+55H+校验
  85. 25 0B8H----- 显示时钟
  86. 接收命令: 0FFH+02H+0B8H+0B8H
  87. C
  88. 25 0B9H----- 修改时钟
  89. 接收命令: 0FFH+08H+0B8H+年2(PBCD)+月1+日1+时1+分1+校验
  90. 0FFH+03H+0B9H+55H+校验
  91. 26 0BAH----- 取版本号
  92. 接收命令: 0FFH+02H+0BAH+0BAH
  93. 0FFH+0EH+0BAH+版本号4+背光状态0开1关+单价(2)+密度(2)+精度(2)+提前量1+校验
  94. 27 0BBH----- 查总累计
  95. 接收命令:0FFH+03H+0BBH+type1(0-2)+校验
  96. 0FFH+04H+0BBH+type+55H+校验
  97. 28 0BCH----- 查月累计
  98. 接收命令:0FFH+05H+0BCH+年2+月1+校验
  99. 0FFH+06H+0BCH+年2+月1+55H+校验
  100. 29 0BDH----- 查日志
  101. 接收命令:0FFH+06H+0BDH+年2+月1+日1+校验
  102. 0FFH+07H+0BDH+年2+月1+日1+55H+校验
  103. 30 0BEH----- 直通显示
  104. 接收命令:0FFH+0BH+0BEH+8BYTE+小数点0或1+校验
  105. 0FFH+03H+0BEH+55H+校验
  106. (8byte: 单价小数2位+单价整数2位+金额小数2位+金额整数低2位 + 金额整数高2位+升小数2位+升整数低2位+升整数高2位)
  107. 31 0BFH----- 用油确认 0:表示出厂鉴定, 1:表示现场鉴定
  108. 接收命令:0FFH+04H+0BFH+0BFH+1BYTE(0-2)+校验
  109. 0FFH+05H+0BFH+0BFH+1BYTE(0-2)+55H+校验
  110. 32 0C0H----- 清零
  111. 接收命令:0FFH+04H+0C0H+0ABH+0CDH+校验
  112. 0FFH+03H+0C0H+55H+校验
  113. 33 0C1H----- 手动复位
  114. 接收命令:0FFH+04H+0C1H+98H+76H+校验
  115. 系统复位,加油时不响应复位
  116. 34 0C2H-----
  117. 35 0C3H----- 开关背光源
  118. 接收命令:0FFH+02H+0C3H+0C3H
  119. 0FFH+04H+0C3H+55H+背光源状态0(开)或1(关)+校验
  120. 36 0C4H------
  121. 37 0C5H------
  122. 38 0C6H------
  123. 39 0C7H------
  124. 40 0C8H------
  125. 41 0C9H------
  126. 42 0CAH------
  127. 43 0D0H------
  128. 44 92h--------油票定量升
  129. 接收命令:0FFH+05H+92H+定量3+校验
  130. 0FFH+03H+92H+55H+校验
  131. 45 93H--------油票定量元
  132. 接收命令:0FFH+05H+93H+定量3+校验
  133. 0FFH+03H+93H+55H+校验
  134. 46 94H--------油票定量公斤
  135. 接收命令:0FFH+05H+94H+定量3+校验
  136. 0FFH+03H+94H+55H+校验
  137. 47 98H--------
  138. 48 0D1H-------设置提前量;
  139. 接收命令:0FFH+03H+0D1H+提前量1+校验
  140. 0FFH+04H+0D1H+提前量1+55H+校验
  141. 48 0D2H-------设置波特率;***** 28版本中未加
  142. 接收命令:0FFH+03H+0D2H+CC...+校验;;CC 1200 E0 1900 E6 2400 F2 4800
  143. 0FFH+04H+0D2H+波特率1+55H+校验
  144. 49 0D3H----- (加油状态,加油现值,加油结果) 1-0-1 SW=CLOSE
  145. 接收命令: 0FFH+02H+0D3H+校验
  146. 0FFH+0DH+0D3H+流水号2+加油量升3+公斤3+加油金额3+状态1+校验1
  147. 注意: 除特殊说明,都是十六进制数
  148. 流水号2:流水号2个字节
  149. 1.0E5H----- (开机)
  150. 接收命令: 0FFH+02H+0E5H+校验
  151. 0FFH+03H+0E5H+55H+校验
  152. 2.0E6H----- (关机)
  153. 接收命令: 0FFH+02H+0E6H+校验
  154. 0FFH+03H+0E6H+55H+校验
  155. 3.0E7H----- (定量公升)
  156. 接收命令: 0FFH+05H+0E7H+数量3+校验
  157. 0FFH+03H+0E7H+55H+校验
  158. 在公斤版中为定量公斤
  159. 4.0E8H----- (定量公斤)
  160. 接收命令: 0FFH+05H+0E8H+数量3+校验
  161. 0FFH+03H+0E8H+55H+校验
  162. 在公斤版中为定量升
  163. 5.0E9H----- (定量金额)
  164. 接收命令: 0FFH+05H+0E9H+数量3+校验
  165. 0FFH+03H+0E9H+55H+校验
  166. 升版公斤版相同
  167. 6、金额凑整功能
  168. 0EAH----- (金额凑整)
  169. 接收命令: 0FFH+02H+0EAH+校验
  170. 0FFH+03H+0EAH+55H+校验
  171. 7、升数凑整功能
  172. 0EBH----- (升数凑整)
  173. 接收命令: 0FFH+02H+0EBH+校验
  174. 0FFH+03H+0EBH+55H+校验
  175. 8、0ECH----- 显示税务总累计
  176. 接收命令:0FFH+03H+0ECH+type1(0-2)+校验(type1:0表示总累计, 1表示出厂累计, 2表示现场累计)
  177. 0FFH+04H+0ECH+type+55H+校验
  178. 9、0EDH----- (班累计) 须在显示屏上显示累计
  179. 接收命令: 0FFH+03H+0ECH+type1(0-2)+校验(type1: 0 = 升数; 1 = 金额; 2 = 公斤)
  180. 0FFH + 03H + 0EDH + 55H + 校验1 ;;;;;;;;;;LEI NO CHANGE