{"id":1557,"date":"2020-02-10T22:24:58","date_gmt":"2020-02-10T14:24:58","guid":{"rendered":"http:\/\/www.infwin.com.cn\/?p=1557"},"modified":"2022-05-11T13:41:20","modified_gmt":"2022-05-11T05:41:20","slug":"giant204-4%e9%80%9a%e9%81%93%e7%a7%b0%e9%87%8d%e6%a8%a1%e5%9d%97rs485-rs232modbus%e9%87%8d%e9%87%8f%e5%8f%98%e9%80%81%e5%99%a8%e7%a7%b0%e9%87%8d%e4%bc%a0%e6%84%9f%e5%99%a8","status":"publish","type":"post","link":"http:\/\/www.infwin.com.cn\/1557.html","title":{"rendered":"Giant204-4\u901a\u9053\u79f0\u91cd\u6a21\u5757,RS485\/RS232,Modbus,\u91cd\u91cf\u53d8\u9001\u5668,\u79f0\u91cd\u4f20\u611f\u5668"},"content":{"rendered":"
Giant204\u56db\u901a\u9053\u79f0\u91cd\u53d8\u9001\u5668\u662f\u9762\u5411\u5de5\u4e1a\u63a7\u5236\u9886\u57df\u7684\u91cd\u91cf\u53d8\u9001\u5668\uff0c\u96c6\u56db\u4e2a\u9ad8\u901f\u79f0\u91cd\u901a\u9053\uff0cRS485\u548cRS232\u901a\u4fe1\u63a5\u53e3\u4e8e\u4e00\u4f53\uff08Modbus-RTU\u901a\u4fe1\u534f\u8bae\uff09\uff0c\u540c\u65f6\u8fdb\u884c\u56db\u4e2a\u91cd\u91cf\u7684\u72ec\u7acb\u5e76\u884c\u9ad8\u901f\u68c0\u6d4b\u3002\u79f0\u91cd\u901a\u9053\u524d\u7aef\u4fe1\u53f7\u5904\u7406\u91c7\u7528\u9ad8\u7cbe\u5ea6\u4e13\u7528AD\u8f6c\u6362\u82af\u7247\uff0c\u5177\u6709\u8f93\u5165\u4fe1\u53f7\u8303\u56f4\u5bbd\uff0c\u5206\u8fa8\u7387\u9ad8\uff0c\u96f6\u70b9\u548c\u6ee1\u8f7d\u6e29\u6f02\u5c0f\u7684\u7279\u70b9\u3002\u6a21\u5757\u91c7\u752835mm\u6807\u51c6\u5bfc\u8f68\u5b89\u88c5\u65b9\u5f0f\u53ef\u5d4c\u5165\u63a7\u5236\u67dc\u3002\u6a21\u5757\u901a\u4fe1\u534f\u8bae\u91c7\u7528Modbus\u901a\u4fe1\u534f\u8bae\uff0c\u53ef\u8fde\u63a5\u5404\u79cdPLC\u79f0\u91cd\u63a7\u5236\u7cfb\u7edf\uff0c\u7ec4\u6001\u8f6f\u4ef6\uff0c\u89e6\u6478\u5c4f\uff0cDCS,\u4ee5\u53ca\u7535\u8111\u96c6\u4e2d\u76d1\u63a7\u7cfb\u7edf\u3002\u9002\u7528\u4e8e\u4e00\u822c\u5de5\u4e1a\u7528\u9014\u7684\u6599\u6597\u79e4\u3001\u53f0\u79e4\u3001\u5929\u8f66\u79e4\u3001\u540a\u79e4\u3001\u62c9\u529b\u8bd5\u9a8c\u673a\u3001\u538b\u529b\u8bd5\u9a8c\u673a\u7b49\u6240\u6709\u7535\u963b\u5f0f\u5e94\u53d8\u6d4b\u529b\u4e0e\u79f0\u91cd\u4f20\u611f\u5668\u7684\u573a\u5408\u3002<\/span><\/p>\n <\/p>\n
\n- \u72ec\u7acb\u7684\u56db\u901a\u9053\u5e76\u884c\u9ad8\u901f\u3001\u9ad8\u7cbe\u5ea6\u79f0\u91cd\u4fe1\u53f7\u8f93\u5165<\/span><\/li>\n
- RS485\u548cRS232\u63a5\u53e3\uff0cModbus-RTU\u534f\u8bae<\/span><\/li>\n
- \u652f\u6301\u5b9e\u7269\u6807\u5b9a\u4ee5\u53ca\u514d\u781d\u7801\u7684\u6570\u5b57\u6807\u5b9a<\/span><\/li>\n
- \u6570\u5b57\u6ee4\u6ce2\u4e0e\u6297\u9707\u52a8\u6ee4\u6ce2<\/span><\/li>\n
- \u7279\u6027\u53c2\u6570\u6389\u7535\u5b58\u50a8<\/span><\/li>\n
- \u96f6\u70b9\u8ddf\u8e2a\u4e0e\u5f00\u673a\u81ea\u52a8\u7f6e\u96f6\u529f\u80fd<\/span><\/li>\n
- \u5185\u7f6e\u770b\u95e8\u72d7\uff0c\u8fd0\u884c\u7a33\u5b9a\u53ef\u9760<\/span><\/li>\n
- 35mm\u6807\u51c6\u5bfc\u8f68\u5b89\u88c5\u6216\u9632\u6c34\u7bb1\u5bc6\u95ed\u5b89\u88c5<\/span><\/li>\n<\/ul>\n
<\/p>\n
\n\n\n\u6280\u672f\u53c2\u6570<\/span><\/td>\n<\/tr>\n\n\u7535\u6e90\u4f9b\u5e94<\/span><\/td>\n | 18-36VDC \u76f4\u6d41\uff0c\u7ea65W @ 24VDC<\/span><\/td>\n<\/tr>\n\n\u91cd\u91cf\u4f20\u611f\u5668\u4fe1\u53f7<\/span><\/td>\n | \u901a\u9053\u6570\u91cf\uff1a4\u4e2a,\u5e76\u884c\u91c7\u6837<\/span><\/p>\n \u9002\u7528\u4f20\u611f\u5668\u7c7b\u578b\uff1a\u6240\u6709\u7535\u963b\u5e94\u53d8\u5f0f\u6d4b\u529b\u4e0e\u79f0\u91cd\u4f20\u611f\u5668<\/span><\/p>\n\u6fc0\u52b1\u7535\u538b\uff1a+5V DC\uff0c\u6bcf\u4e2a\u901a\u9053\u6700\u5927\u7535\u6d4160mA<\/span><\/p>\n\u91c7\u6837\u901f\u7387: 100Hz<\/span><\/p>\n\u6700\u5927\u91cf\u7a0b: \u00b130mV<\/span><\/p>\n\u9ad8\u5206\u8fa8\u7387: 1\/100000<\/span><\/p>\n\u9ad8\u7075\u654f\u5ea6:0.25uV\/d<\/span><\/p>\n\u975e\u7ebf\u6027:\u00b10.001\uff05FS<\/span><\/p>\n\u6e29\u5ea6\u7279\u6027:<\u00b15ppm\/\u2103<\/span><\/td>\n<\/tr>\n\n\u9762\u677f\u663e\u793a\u90e8\u5206<\/span><\/td>\n | \u663e\u793a\u5143\u4ef6\uff1a6\u4f4d7\u6bb5LED\u6570\u7801\u7ba1\uff0c8\u4e2a\u6307\u793a\u706f<\/span><\/p>\n \u91cd\u91cf\u663e\u793a\uff1a4\u901a\u9053\u8f6e\u6d41\u663e\u793a\u6216\u56fa\u5b9a\u901a\u9053\u663e\u793a\uff0c\u53ef\u5207\u6362\u6bdb\u91cd\u51c0\u91cd\u663e\u793a\u3002<\/span><\/p>\n\u663e\u793a\u91cf\u7a0b\uff1a500-100000<\/span><\/p>\n\u5206\u5ea6\u95f4\u8ddd\uff1a1,2,5,10,20,50<\/span><\/p>\n\u5c0f\u6570\u70b9\u4f4d\u7f6e\uff1a\u5341\u4f4d\uff0c\u767e\u4f4d\uff0c\u5343\u4f4d\uff0c\u4e07\u4f4d<\/span><\/p>\n\u8d85\u8f7d\u663e\u793a\uff1a+o.L.\u6216-o.L.<\/span><\/p>\n\u8d1f\u6570\u663e\u793a\uff1a\u6700\u5de6\u4fa7\u6570\u7801\u7ba1\u663e\u793a”-“\u53f7<\/span><\/p>\n\u9762\u677f\u6307\u793a\u706f\uff1a8\u4e2a<\/span><\/td>\n<\/tr>\n\nRS-485\u63a5\u53e3<\/span><\/td>\n | \u6297\u96f7\u51fb\/\u8fc7\u6d41\u4fdd\u62a4<\/span><\/p>\n \u6807\u51c6\u7684ModbusRTU\u534f\u8bae<\/span><\/td>\n<\/tr>\n\nRS-232\u63a5\u53e3<\/span><\/td>\n | \u6297\u96f7\u51fb\/\u8fc7\u6d41\u4fdd\u62a4<\/span><\/p>\n \u6807\u51c6\u7684ModbusRTU\u534f\u8bae<\/span><\/td>\n<\/tr>\n\n\u50a8\u5b58\u73af\u5883<\/span><\/td>\n | -40~85\u2103 \u6e7f\u5ea610%~95%<\/span><\/td>\n<\/tr>\n\n\u8fd0\u884c\u73af\u5883<\/span><\/td>\n | -10~45\u2103 \u6e7f\u5ea610%~95%<\/span><\/td>\n<\/tr>\n\n\u5b89\u88c5\u65b9\u5f0f\u3001\u5916\u578b\u5c3a\u5bf8\u4e0e\u9632\u62a4\u7b49\u7ea7<\/span><\/td>\n | 35mm\u6807\u51c6\u5bfc\u8f68\u5b89\u88c5(125*90*50mm): IP40<\/span><\/p>\n \u9632\u6c34\u7bb1\u5b89\u88c5: IP65<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n <\/p>\n \n\n\n\u63a5\u7ebf\u7aef\u5b50\u8bf4\u660e<\/span><\/td>\n<\/tr>\n\n\u7aef\u5b50\u6807\u8bb0<\/strong><\/span><\/td>\n\u8bf4\u660e<\/strong><\/span><\/td>\n<\/tr>\n\nPOWER – V+<\/span><\/td>\n | \u8f93\u5165\u7535\u6e90\u6b63\uff08+18-36V\u76f4\u6d41\u8f93\u5165\uff09<\/span><\/td>\n<\/tr>\n\nPOWER – G<\/span><\/td>\n | \u8f93\u5165\u7535\u6e90\u8d1f<\/span><\/td>\n<\/tr>\n\nPE<\/span><\/td>\n | \u4f9b\u7535\u7cfb\u7edf\u4fdd\u62a4\u5730<\/span><\/td>\n<\/tr>\n\nRS485 – T+<\/span><\/td>\n | RS485\u63a5\u53e3T+\/A\/RS485+<\/span><\/td>\n<\/tr>\n\nRS485 – T-<\/span><\/td>\n | RS485\u63a5\u53e3T-\/B\/RS485-<\/span><\/td>\n<\/tr>\n\nRS232 – G<\/span><\/td>\n | RS232\u63a5\u53e3GND<\/span><\/td>\n<\/tr>\n\nRS232 – TXD<\/span><\/td>\n | RS232\u63a5\u53e3TXD(\u63a5\u4e3b\u673aRS232\u63a5\u53e3\u7684RXD)<\/span><\/td>\n<\/tr>\n\nRS232 – RXD<\/span><\/td>\n | RS232\u63a5\u53e3RXD(\u63a5\u4e3b\u673aRS232\u63a5\u53e3\u7684TXD)<\/span><\/td>\n<\/tr>\n\nCHNL0 – EX+<\/span><\/td>\n | \u79f0\u91cd\u901a\u90530 – \u6fc0\u52b1\u8f93\u51fa\u6b63\u6781<\/span><\/td>\n<\/tr>\n\nCHNL0 – EX-<\/span><\/td>\n | \u79f0\u91cd\u901a\u90530 – \u6fc0\u52b1\u8f93\u51fa\u8d1f\u6781<\/span><\/td>\n<\/tr>\n\nCHNL0 – SI+<\/span><\/td>\n | \u79f0\u91cd\u901a\u90530 – \u4fe1\u53f7\u8f93\u5165\u6b63\u6781<\/span><\/td>\n<\/tr>\n\nCHNL0 – SI-<\/span><\/td>\n | \u79f0\u91cd\u901a\u90530 – \u4fe1\u53f7\u8f93\u5165\u8d1f\u6781<\/span><\/td>\n<\/tr>\n\nCHNL0 – SH<\/span><\/td>\n | \u79f0\u91cd\u901a\u90530 – \u5c4f\u853d\u5c42<\/span><\/td>\n<\/tr>\n\nCHNL1 – EX+<\/span><\/td>\n | \u79f0\u91cd\u901a\u90531 – \u6fc0\u52b1\u8f93\u51fa\u6b63\u6781<\/span><\/td>\n<\/tr>\n\nCHNL1 – EX-<\/span><\/td>\n | \u79f0\u91cd\u901a\u90531 – \u6fc0\u52b1\u8f93\u51fa\u8d1f\u6781<\/span><\/td>\n<\/tr>\n\nCHNL1 – SI+<\/span><\/td>\n | \u79f0\u91cd\u901a\u90531 – \u4fe1\u53f7\u8f93\u5165\u6b63\u6781<\/span><\/td>\n<\/tr>\n\nCHNL1 – SI-<\/span><\/td>\n | \u79f0\u91cd\u901a\u90531 – \u4fe1\u53f7\u8f93\u5165\u8d1f\u6781<\/span><\/td>\n<\/tr>\n\nCHNL1 – SH<\/span><\/td>\n | \u79f0\u91cd\u901a\u90531 – \u5c4f\u853d\u5c42<\/span><\/td>\n<\/tr>\n\nCHNL2 – EX+<\/span><\/td>\n | \u79f0\u91cd\u901a\u90532 – \u6fc0\u52b1\u8f93\u51fa\u6b63\u6781<\/span><\/td>\n<\/tr>\n\nCHNL2 – EX-<\/span><\/td>\n | \u79f0\u91cd\u901a\u90532 – \u6fc0\u52b1\u8f93\u51fa\u8d1f\u6781<\/span><\/td>\n<\/tr>\n\nCHNL2 – SI+<\/span><\/td>\n | \u79f0\u91cd\u901a\u90532 – \u4fe1\u53f7\u8f93\u5165\u6b63\u6781<\/span><\/td>\n<\/tr>\n\nCHNL2 – SI-<\/span><\/td>\n | \u79f0\u91cd\u901a\u90532 – \u4fe1\u53f7\u8f93\u5165\u8d1f\u6781<\/span><\/td>\n<\/tr>\n\nCHNL2 – SH<\/span><\/td>\n | \u79f0\u91cd\u901a\u90532 – \u5c4f\u853d\u5c42<\/span><\/td>\n<\/tr>\n\nCHNL3 – EX+<\/span><\/td>\n | \u79f0\u91cd\u901a\u90533 – \u6fc0\u52b1\u8f93\u51fa\u6b63\u6781<\/span><\/td>\n<\/tr>\n\nCHNL3 – EX-<\/span><\/td>\n | \u79f0\u91cd\u901a\u90533 – \u6fc0\u52b1\u8f93\u51fa\u8d1f\u6781<\/span><\/td>\n<\/tr>\n\nCHNL3 – SI+<\/span><\/td>\n | \u79f0\u91cd\u901a\u90533 – \u4fe1\u53f7\u8f93\u5165\u6b63\u6781<\/span><\/td>\n<\/tr>\n\nCHNL3 – SI-<\/span><\/td>\n | \u79f0\u91cd\u901a\u90533 – \u4fe1\u53f7\u8f93\u5165\u8d1f\u6781<\/span><\/td>\n<\/tr>\n\nCHNL3 – SH<\/span><\/td>\n | \u79f0\u91cd\u901a\u90533 – \u5c4f\u853d\u5c42<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n <\/p>\n \n\n\nModbus\u5bc4\u5b58\u5668\u8bf4\u660e<\/span><\/td>\n<\/tr>\n\n\u53c2\u6570\u540d\u79f0<\/strong><\/span><\/td>\n\u901a\u90530\u5bc4\u5b58\u5668<\/strong><\/span><\/p>\n 16 \/10<\/strong>\u8fdb\u5236<\/strong><\/span><\/td>\n\u6570\u636e\u7c7b\u578b<\/strong><\/span><\/td>\nModbus<\/strong><\/span><\/p>\n \u529f\u80fd\u53f7<\/strong><\/span><\/td>\n\u53c2\u6570\u8303\u56f4\u53ca\u8bf4\u660e<\/strong><\/span><\/td>\n\u51fa\u5382\u503c<\/strong><\/span><\/td>\n\u6389\u7535<\/strong><\/span><\/p>\n \u5b58\u50a8<\/strong><\/span><\/td>\n<\/tr>\n\n\u663e\u793a\u6d4b\u91cf\u503c(MSV_DISP)<\/span><\/td>\n | 0x0000\/0<\/span><\/p>\n 0x0001\/1<\/span><\/td>\n | INT32,\u53ea\u8bfb<\/span><\/td>\n | 3\/4<\/span><\/td>\n | \u91cd\u91cf\u663e\u793a\u503c\u5bc4\u5b58\u5668<\/span><\/p>\n -100000~100000<\/span><\/td>\n | N\/A<\/span><\/td>\n | \u5426<\/span><\/td>\n<\/tr>\n\n\u6d4b\u91cf\u503c\u72b6\u6001(MSV_STATUS)<\/span><\/td>\n | 0x0002\/2<\/span><\/p>\n 0x0003\/3<\/span><\/td>\n | UINT32,\u53ea\u8bfb<\/span><\/td>\n | 3\/4<\/span><\/td>\n | \u6d4b\u91cf\u503c\u72b6\u6001\u5bc4\u5b58\u5668\u3002\u8be6\u89c1\u201c\u79f0\u91cd\u6d4b\u91cf\u53c2\u6570\u201d\u7ae0\u8282\u3002<\/span><\/td>\n | N\/A<\/span><\/td>\n | \u5426<\/span><\/td>\n<\/tr>\n\n\u6bdb\u91cd\u503c<\/span><\/p>\n (MSV_GROSS)<\/span><\/td>\n | 0x0004\/4<\/span><\/p>\n 0x0005\/5<\/span><\/td>\n | INT32,\u53ea\u8bfb<\/span><\/td>\n | 3\/4<\/span><\/td>\n | \u79f0\u91cd\u7684\u6bdb\u91cd\u503c<\/span><\/td>\n | N\/A<\/span><\/td>\n | \u5426<\/span><\/td>\n<\/tr>\n\n\u51c0\u91cd\u503c<\/span><\/p>\n (MSV_NET)<\/span><\/td>\n | 0x0006\/6<\/span><\/p>\n 0x0007\/7<\/span><\/td>\n | INT32,\u53ea\u8bfb<\/span><\/td>\n | 3\/4<\/span><\/td>\n | \u79f0\u91cd\u7684\u51c0\u91cd\u503c<\/span><\/td>\n | N\/A<\/span><\/td>\n | \u5426<\/span><\/td>\n<\/tr>\n\n\u76ae\u91cd\u503c<\/span><\/p>\n (MSV_TAV)<\/span><\/td>\n | 0x0008\/8<\/span><\/p>\n 0x0009\/9<\/span><\/td>\n | INT32,\u53ea\u8bfb<\/span><\/td>\n | 3\/4<\/span><\/td>\n | \u5f53\u524d\u76ae\u91cd\u503c<\/span><\/td>\n | N\/A<\/span><\/td>\n | \u5426<\/span><\/td>\n<\/tr>\n\nAD\u5185\u7801\u503c<\/span><\/p>\n (MSV_AD)<\/span><\/td>\n | 0x000A\/10<\/span><\/p>\n 0x000B\/11<\/span><\/td>\n | INT32,\u53ea\u8bfb<\/span><\/td>\n | 3\/4<\/span><\/td>\n | \u79f0\u91cd\u7684AD\u5185\u7801\u503c<\/span><\/td>\n | N\/A<\/span><\/td>\n | \u5426<\/span><\/td>\n<\/tr>\n\n\u6beb\u4f0f\u503c<\/span><\/p>\n (MSV_MV)<\/span><\/td>\n | 0x000C\/12<\/span><\/p>\n 0x000D\/13<\/span><\/td>\n | INT32,\u53ea\u8bfb<\/span><\/td>\n | 3\/4<\/span><\/td>\n | \u79f0\u91cd\u4f20\u611f\u5668\u7684\u6beb\u4f0f\u503c<\/span><\/td>\n | N\/A<\/span><\/td>\n | \u5426<\/span><\/td>\n<\/tr>\n\n<\/td>\n | <\/td>\n | <\/td>\n | <\/td>\n | <\/td>\n | <\/td>\n | <\/td>\n<\/tr>\n | \n\u5b9e\u7269\u6807\u5b9a\/\u6570\u5b57\u6807\u5b9a\u96f6\u70b9\u503c(LDW)<\/span><\/td>\n | 0x0010\/16<\/span><\/p>\n 0x0011\/17<\/span><\/td>\n | INT32,\u8bfb\u5199<\/span><\/td>\n | 3\/4\/16<\/span><\/td>\n | \u5b9e\u7269\u6807\u5b9a\u6216\u6570\u5b57\u6807\u5b9a\u65f6\uff0c\u6807\u5b9a\u96f6\u70b9\u503c\uff0c\u5199\u5165\u56fa\u5b9a\u503c0x7FFFFFFF\u65f6\uff0c\u6a21\u5757\u8fdb\u884c\u81ea\u52a8\u96f6\u70b9\u6807\u5b9a\u3002\u8be6\u89c1\u201c\u79f0\u91cd\u6d4b\u91cf\u53c2\u6570\u201d\u7ae0\u8282\u3002<\/span><\/td>\n | 0<\/span><\/td>\n | \u662f<\/span><\/td>\n<\/tr>\n\n\u5b9e\u7269\u6807\u5b9a\u52a0\u8f7d\u503c(LWT)<\/span><\/td>\n | 0x0012\/18<\/span><\/p>\n 0x0013\/19<\/span><\/td>\n | INT32,\u8bfb\u5199<\/span><\/td>\n | 3\/4\/16<\/span><\/td>\n | \u5b9e\u7269\u6807\u5b9a\u65f6\uff0c\u6807\u5b9a\u781d\u7801\u503c\uff0c\u5199\u5165\u56fa\u5b9a\u503c0x7FFFFFFF\u65f6\uff0c\u6a21\u5757\u8fdb\u884c\u81ea\u52a8\u781d\u7801\u6807\u5b9a\u3002\u8be6\u89c1\u201c\u79f0\u91cd\u6d4b\u91cf\u53c2\u6570\u201d\u7ae0\u8282\u3002<\/span><\/td>\n | 100000<\/span><\/td>\n | \u662f<\/span><\/td>\n<\/tr>\n\n\u5b9e\u7269\u6807\u5b9a\u781d\u7801\u91cd\u91cf(CWT)<\/span><\/td>\n | 0x0014\/20<\/span><\/p>\n 0x0015\/21<\/span><\/td>\n | INT32,\u8bfb\u5199<\/span><\/td>\n | 3\/4\/16<\/span><\/td>\n | \u5b9e\u7269\u6807\u5b9a\u65f6\u4f7f\u7528\u7684\u6807\u5b9a\u781d\u7801\u91cd\u91cf\u3002<\/span><\/p>\n 10-100000<\/span><\/td>\n | 100000<\/span><\/td>\n | \u662f<\/span><\/td>\n<\/tr>\n\n\u6570\u5b57\u6807\u5b9a\u4f20\u611f\u5668\u603b\u91cf\u7a0b(NOVDIGI)<\/span><\/td>\n | 0x0016\/22<\/span><\/p>\n 0x0017\/23<\/span><\/td>\n | INT32,\u8bfb\u5199<\/span><\/td>\n | 3\/4\/16<\/span><\/td>\n | \u6570\u5b57\u6807\u5b9a\u65f6\u4f20\u611f\u5668\u7684\u603b\u91cf\u7a0b\u3002<\/span><\/p>\n 10-100000<\/span><\/td>\n | 100000<\/span><\/td>\n | \u662f<\/span><\/td>\n<\/tr>\n\n\u6570\u5b57\u6807\u5b9a\u4f20\u611f\u5668\u7075\u654f\u5ea6(SENDIGI)<\/span><\/td>\n | 0x0018\/24<\/span><\/p>\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |