Advertisement
umbaman

Untitled

Apr 23rd, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.02 KB | None | 0 0
  1. modbus.tcp.connect(502 , 'AServer', {debug:null},(err, connection) => {
  2. if (err) {
  3. console.log(`Error Message ${err.message}`);
  4. throw err;
  5. }
  6. console.log("Connection established");
  7.  
  8. console.log('Hello Loop');
  9.  
  10.  
  11.  
  12. setInterval(() => {
  13. console.log('Start');
  14. startTime = process.hrtime();
  15. async.series([
  16. (next) => {
  17. let value=0, beenHere1=false, beenHere2=false, beenHere3=false, beenHere4=false, beenHere5=false, beenHere6=false, beenHere7=false,
  18. beenHere8=false, beenHere9=false, beenHere10=false;
  19. connection.readHoldingRegisters({ address: 0x0029, quantity: 10}, (err, res) => {
  20. if (err) throw err;
  21. // console.log(`Μηχανή 1 Counter ${res.response.data[0].readUInt16BE(0)}`);
  22. value = res.response.data[0].readUInt16BE(0);
  23.  
  24. //detect value zeroing
  25. if (value===0) counter1=0;
  26.  
  27.  
  28. //application load
  29. if ((counter1 < value) && beenHere1===false) {
  30. counter1 = value;
  31. storeCounter(1, counter1);
  32. beenHere1=true;
  33. }
  34.  
  35. //store the value if the it has been incremented
  36. while (value - counter1){
  37. counter1++;
  38. storeCounter(1, (counter1));;
  39. }
  40. // console.log(`Μηχανή 2 Counter ${res.response.data[1].readUInt16BE(0)}`);
  41. value = res.response.data[1].readUInt16BE(0);
  42. if (value===0) counter2=0;
  43. if ((counter2 < value) && beenHere2===false) {
  44. counter2 = value;
  45. storeCounter(2, counter2);
  46. beenHere2=true;
  47. }
  48. while (value - counter2){
  49. counter2++;
  50. storeCounter(2, (counter2));;
  51. }
  52. // console.log(`Μηχανή 3 Counter ${res.response.data[2].readUInt16BE(0)}`);
  53. value = res.response.data[2].readUInt16BE(0);
  54. if (value===0) counter3=0;
  55. if ((counter3 < value) && beenHere3===false) {
  56. counter3 = value;
  57. storeCounter(3, counter3*2); //Two pieces per pressing
  58. beenHere3=true;
  59. }
  60. while (value - counter3){
  61. counter3++;
  62. storeCounter(3, (counter3*2));;
  63. }
  64. // console.log(`Μηχανή 4 Counter ${res.response.data[3].readUInt16BE(0)}`);
  65. value = res.response.data[3].readUInt16BE(0);
  66. if (value===0) counter4=0;
  67. if ((counter4 < value) && beenHere4===false) {
  68. counter4 = value;
  69. storeCounter(4, counter4);
  70. beenHere4=true;
  71. }
  72. while (value - counter4){
  73. counter4++;
  74. storeCounter(4, (counter4));;
  75. }
  76. // console.log(`Μηχανή 5 Counter ${res.response.data[4].readUInt16BE(0)}`);
  77. value = res.response.data[4].readUInt16BE(0);
  78. if (value===0) counter5=0;
  79. if ((counter5 < value) && beenHere5===false) {
  80. counter5 = value;
  81. storeCounter(5, counter5);
  82. beenHere5=true;
  83. }
  84. while (value - counter5){
  85. counter5++;
  86. storeCounter(5, (counter5));;
  87. }
  88. // console.log(`Μηχανή 6 Counter ${res.response.data[5].readUInt16BE(0)}`);
  89. value = res.response.data[5].readUInt16BE(0);
  90. if (value===0) counter6=0;
  91. if ((counter6 < value) && beenHere6===false) {
  92. counter6 = value;
  93. storeCounter(6, counter6);
  94. beenHere6=true;
  95. }
  96. while (value - counter6){
  97. counter6++;
  98. storeCounter(6, (counter6));;
  99. }
  100. // console.log(`Μηχανή 7 Counter ${res.response.data[6].readUInt16BE(0)}`);
  101. value = res.response.data[6].readUInt16BE(0);
  102. if (value===0) counter7=0;
  103. if ((counter7 < value) && beenHere7===false) {
  104. counter7 = value;
  105. storeCounter(7, counter7);
  106. beenHere7=true;
  107. }
  108. while (value - counter7){
  109. counter7++;
  110. storeCounter(7, (counter7));;
  111. }
  112. // console.log(`Μηχανή 8 Counter ${res.response.data[7].readUInt16BE(0)}`);
  113. value = res.response.data[7].readUInt16BE(0);
  114. if (value===0) counter8=0;
  115. if ((counter8 < value) && beenHere8===false) {
  116. counter8 = value;
  117. storeCounter(8, counter8*2); //two pieces per pressing
  118. beenHere8=true;
  119. }
  120. while (value - counter8){
  121. counter8++;
  122. storeCounter(8, (counter8*2));;
  123. }
  124. // console.log(`Μηχανή 9 Counter ${res.response.data[8].readUInt16BE(0)}`);
  125. value = res.response.data[8].readUInt16BE(0);
  126. if (value===0) counter9=0;
  127. if ((counter9 < value) && beenHere9===false) {
  128. counter9 = value;
  129. storeCounter(9, counter9);
  130. beenHere9=true;
  131. }
  132. while (value - counter9){
  133. counter9++;
  134. storeCounter(9, (counter9));;
  135. }
  136. // console.log(`Μηχανή 10 Counter ${res.response.data[9].readUInt16BE(0)}`);
  137. value = res.response.data[9].readUInt16BE(0);
  138. if (value===0) counter10=0;
  139. if ((counter10 < value) && beenHere10===false) {
  140. counter10 = value;
  141. storeCounter(10, counter10);
  142. beenHere10=true;
  143. }
  144. while (value - counter10){
  145. counter10++;
  146. storeCounter(10, (counter10));;
  147. }
  148.  
  149. return next();
  150. });
  151. },
  152. (next) => {
  153. connection.readHoldingRegisters({ address: 0x003B, quantity: 3}, (err, res) => {
  154. if (err) throw err;
  155. let value = 0, beenHere14=false, beenHere15=false, beenHere16=false;
  156. // console.log(`Μηχανή 14 Counter ${res.response.data[0].readUInt16BE(0)}`);
  157. value = res.response.data[0].readUInt16BE(0);
  158. if (value===0) counter14=0;
  159. if ((counter14 < value) && beenHere14===false) {
  160. counter14 = value;
  161. storeCounter(14, counter14*2);
  162. beenHere14=true;
  163. }
  164. while (value - counter14){
  165. counter14++;
  166. storeCounter(14, (counter14*2));;
  167. }
  168. // console.log(`Μηχανή 15 Counter ${res.response.data[1].readUInt16BE(0)}`);
  169. value = res.response.data[1].readUInt16BE(0);
  170. if (value===0) counter15=0;
  171. if ((counter15 < value) && beenHere15===false) {
  172. counter15 = value;
  173. storeCounter(15, counter15*2);
  174. beenHere15=true;
  175. }
  176. while (value - counter15){
  177. counter15++;
  178. storeCounter(15, (counter15*2));;
  179. }
  180. // console.log(`Μηχανή 16 Counter ${res.response.data[2].readUInt16BE(0)}`);
  181. value = res.response.data[2].readUInt16BE(0);
  182. if (value===0) counter16=0;
  183. if ((counter16 < value) && beenHere16===false) {
  184. counter16 = value;
  185. storeCounter(16, counter16);
  186. beenHere16=true;
  187. }
  188. while (value - counter16){
  189. counter16++;
  190. storeCounter(16, (counter16));;
  191. }
  192. return next();
  193. });
  194. },
  195. (next) => {
  196. connection.readHoldingRegisters({ address: 0x0033, quantity: 5}, (err, res) => {
  197. if (err) throw err;
  198. let value=0, beenHere17=false, beenHere18=false, beenHere19=false,
  199. beenHere20=false, beenHere21=false;
  200. // console.log(`Μηχανή 20 Counter ${res.response.data[0].readUInt16BE(0)}`);
  201. value = res.response.data[0].readUInt16BE(0);
  202. if (value===0) counter20=0;
  203. if ((counter20 < value) && beenHere20===false) {
  204. counter20 = value;
  205. storeCounter(20, counter20);
  206. beenHere20=true;
  207. }
  208. while (value - counter20){
  209. counter20++;
  210. storeCounter(20, (counter20));
  211. //storeCounter(20, 1); // try with one to see if results are better exploitable
  212. }
  213. // console.log(`Μηχανή 21 Counter ${res.response.data[1].readUInt16BE(0)}`);
  214. value = res.response.data[1].readUInt16BE(0);
  215. if (value===0) counter21=0;
  216. if ((counter21 < value) && beenHere21===false) {
  217. counter21 = value;
  218. storeCounter(21, counter21);
  219. beenHere21=true;
  220. }
  221. while (value - counter21){
  222. counter21++;
  223. storeCounter(21, (counter21));;
  224. }
  225. // console.log(`Μηχανή 17 Counter ${res.response.data[2].readUInt16BE(0)}`);
  226. value = res.response.data[2].readUInt16BE(0);
  227. if (value===0) counter17=0;
  228. if ((counter17 < value) && beenHere17===false) {
  229. counter17 = value;
  230. storeCounter(17, counter17*2);
  231. beenHere17=true;
  232. }
  233. while (value - counter17){
  234. counter17++;
  235. storeCounter(17, (counter17*2));;
  236. }
  237. // console.log(`Μηχανή 18 Counter ${res.response.data[3].readUInt16BE(0)}`);
  238. value = res.response.data[3].readUInt16BE(0);
  239. if (value===0) counter18=0;
  240. if ((counter18 < value) && beenHere18===false) {
  241. counter18 = value;
  242. storeCounter(18, counter18*2);
  243. beenHere18=true;
  244. }
  245. while (value - counter18){
  246. counter18++;
  247. storeCounter(18, (counter18*2));;
  248. }
  249. // console.log(`Μηχανή 19 Counter ${res.response.data[4].readUInt16BE(0)}`);
  250. value = res.response.data[4].readUInt16BE(0);
  251. if (value===0) counter19=0;
  252. if ((counter19 < value) && beenHere19===false) {
  253. counter19 = value;
  254. storeCounter(19, counter19);
  255. beenHere19=true;
  256. }
  257. while (value - counter19){
  258. counter19++;
  259. storeCounter(19, (counter19));;
  260. }
  261.  
  262. return next();
  263.  
  264. });
  265. },
  266. (next) => {
  267. connection.readHoldingRegisters({ address: 0x003E, quantity: 2}, (err, res) => {
  268. if (err) throw err;
  269. let value=0, beenHere62=false, beenHere63=false;
  270.  
  271. value = res.response.data[0].readUInt16BE(0);
  272. if (value===0) counter62=0;
  273. if ((counter62 < value) && beenHere62===false) {
  274. counter62 = value;
  275. storeCounter(62, counter62);
  276. beenHere62=true;
  277. }
  278. while (value - counter62){
  279. counter62++;
  280. storeCounter(62, (counter62));
  281. }
  282.  
  283. value = res.response.data[1].readUInt16BE(0);
  284. if (value===0) counter63=0;
  285. if ((counter63 < value) && beenHere63===false) {
  286. counter63 = value;
  287. storeCounter(63, counter63);
  288. beenHere63=true;
  289. }
  290. while (value - counter63){
  291. counter63++;
  292. storeCounter(63, (counter63));
  293. }
  294. console.log(`Access Data Duration ${process.hrtime(startTime)}`);
  295. console.log('End');
  296. return next();
  297. });
  298. }
  299. ], (err) => {
  300. if (err)
  301. {
  302. connection.close(()=>{
  303. console.log("connection closed");
  304. });
  305. throw err;
  306. }
  307. });
  308.  
  309. }, 1000)
  310. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement