Commit abf5d2c6 authored by 叶飞's avatar 叶飞

Initial commit

parents
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>物联网知识库</title>
<meta name="description" content="物联网知识点分享">
<meta name="generator" content="VuePress 1.3.1">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<link rel="icon" href="/favicon.ico">
<link rel="preload" href="/assets/css/0.styles.2c51ae0d.css" as="style"><link rel="preload" href="/assets/js/app.394670a6.js" as="script"><link rel="preload" href="/assets/js/7.b3d344a0.js" as="script"><link rel="prefetch" href="/assets/js/1.564fda4f.js"><link rel="prefetch" href="/assets/js/10.623acd6b.js"><link rel="prefetch" href="/assets/js/11.86f4dd7b.js"><link rel="prefetch" href="/assets/js/12.55cdf3a6.js"><link rel="prefetch" href="/assets/js/13.4fdfc039.js"><link rel="prefetch" href="/assets/js/14.87e817f5.js"><link rel="prefetch" href="/assets/js/15.3478b4f4.js"><link rel="prefetch" href="/assets/js/16.0f9fce17.js"><link rel="prefetch" href="/assets/js/17.8a162a2f.js"><link rel="prefetch" href="/assets/js/18.9ab8d900.js"><link rel="prefetch" href="/assets/js/3.a4daf23b.js"><link rel="prefetch" href="/assets/js/4.d089dd84.js"><link rel="prefetch" href="/assets/js/5.1adb0957.js"><link rel="prefetch" href="/assets/js/6.9e699f41.js"><link rel="prefetch" href="/assets/js/8.6d98bd53.js"><link rel="prefetch" href="/assets/js/9.05f0eb0f.js">
<link rel="stylesheet" href="/assets/css/0.styles.2c51ae0d.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><div class="content"><h1>404</h1> <blockquote>How did we get here?</blockquote> <a href="/" class="router-link-active">Take me home.</a></div></div><div class="global-ui"><div class="back-to-ceiling" style="right:1rem;bottom:6rem;width:2.5rem;height:2.5rem;border-radius:.25rem;line-height:2.5rem;display:none;" data-v-a81d141e data-v-a81d141e><svg t="1574745035067" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5404" class="icon" data-v-a81d141e><path d="M526.60727968 10.90185116a27.675 27.675 0 0 0-29.21455937 0c-131.36607665 82.28402758-218.69155461 228.01873535-218.69155402 394.07834331a462.20625001 462.20625001 0 0 0 5.36959153 69.94390903c1.00431239 6.55289093-0.34802892 13.13561351-3.76865779 18.80351572-32.63518765 54.11355614-51.75690182 118.55860487-51.7569018 187.94566865a371.06718723 371.06718723 0 0 0 11.50484808 91.98906777c6.53300375 25.50556257 41.68394495 28.14064038 52.69160883 4.22606766 17.37162448-37.73630017 42.14135425-72.50938081 72.80769204-103.21549295 2.18761121 3.04276886 4.15646224 6.24463696 6.40373557 9.22774369a1871.4375 1871.4375 0 0 0 140.04691725 5.34970492 1866.36093723 1866.36093723 0 0 0 140.04691723-5.34970492c2.24727335-2.98310674 4.21612437-6.18497483 6.3937923-9.2178004 30.66633723 30.70611158 55.4360664 65.4791928 72.80769147 103.21549355 11.00766384 23.91457269 46.15860503 21.27949489 52.69160879-4.22606768a371.15156223 371.15156223 0 0 0 11.514792-91.99901164c0-69.36717486-19.13165746-133.82216804-51.75690182-187.92578088-3.42062944-5.66790279-4.76302748-12.26056868-3.76865837-18.80351632a462.20625001 462.20625001 0 0 0 5.36959269-69.943909c-0.00994388-166.08943902-87.32547796-311.81420293-218.6915546-394.09823051zM605.93803103 357.87693858a93.93749974 93.93749974 0 1 1-187.89594924 6.1e-7 93.93749974 93.93749974 0 0 1 187.89594924-6.1e-7z" p-id="5405" data-v-a81d141e></path><path d="M429.50777625 765.63860547C429.50777625 803.39355007 466.44236686 1000.39046097 512.00932183 1000.39046097c45.56695499 0 82.4922232-197.00623328 82.5015456-234.7518555 0-37.75494459-36.9345906-68.35043303-82.4922232-68.34111062-45.57627738-0.00932239-82.52019037 30.59548842-82.51086798 68.34111062z" p-id="5406" data-v-a81d141e></path></svg></div></div></div>
<script src="/assets/js/app.394670a6.js" defer></script><script src="/assets/js/7.b3d344a0.js" defer></script>
</body>
</html>
This source diff could not be displayed because it is too large. You can view the blob instead.
(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{240:function(e,t,n){"use strict";t.a={data:function(){return{recoShowModule:!1}},mounted:function(){this.recoShowModule=!0},destroyed:function(){this.recoShowModule=!1}}},242:function(e,t,n){"use strict";n(142);var o={name:"ModuleTransition",props:{delay:{type:String,default:"0"},duration:{type:String,default:".25"}},methods:{setStyle:function(e){e.style.transition="all ".concat(this.duration,"s ease-in-out ").concat(this.delay,"s"),e.style.transform="translateY(-20px)",e.style.opacity=0},unsetStyle:function(e){e.style.transform="translateY(0)",e.style.opacity=1}}},i=(n(315),n(3)),s=Object(i.a)(o,(function(){var e=this.$createElement;return(this._self._c||e)("transition",{attrs:{name:"module"},on:{enter:this.setStyle,"after-enter":this.unsetStyle,"before-leave":this.setStyle}},[this._t("default")],2)}),[],!1,null,null,null);t.a=s.exports},256:function(e,t,n){"use strict";n(46),n(34),n(22),n(68),n(143),n(289);var o={data:function(){return{query:"",focused:!1,focusIndex:0,placeholder:void 0}},mounted:function(){this.placeholder=this.$site.themeConfig.searchPlaceholder||""},computed:{showSuggestions:function(){return this.focused&&this.suggestions&&this.suggestions.length},suggestions:function(){var e=this.query.trim().toLowerCase();if(e){for(var t=this.$site.pages,n=this.$site.themeConfig.searchMaxSuggestions,o=this.$localePath,i=function(t){return t&&t.title&&t.title.toLowerCase().indexOf(e)>-1},s=[],a=0;a<t.length&&!(s.length>=n);a++){var r=t[a];if(this.getPageLocalePath(r)===o)if(i(r))s.push(r);else if(r.headers)for(var l=0;l<r.headers.length&&!(s.length>=n);l++){var c=r.headers[l];i(c)&&s.push(Object.assign({},r,{path:r.path+"#"+c.slug,header:c}))}}return s}},alignRight:function(){return(this.$site.themeConfig.nav||[]).length+(this.$site.repo?1:0)<=2}},methods:{getPageLocalePath:function(e){for(var t in this.$site.locales||{})if("/"!==t&&0===e.path.indexOf(t))return t;return"/"},onUp:function(){this.showSuggestions&&(this.focusIndex>0?this.focusIndex--:this.focusIndex=this.suggestions.length-1)},onDown:function(){this.showSuggestions&&(this.focusIndex<this.suggestions.length-1?this.focusIndex++:this.focusIndex=0)},go:function(e){this.showSuggestions&&(this.$router.push(this.suggestions[e].path),this.query="",this.focusIndex=0)},focus:function(e){this.focusIndex=e},unfocus:function(){this.focusIndex=-1}}},i=(n(298),n(3)),s=Object(i.a)(o,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"search-box"},[n("i",{staticClass:"iconfont reco-search"}),e._v(" "),n("input",{ref:"input",class:{focused:e.focused},attrs:{"aria-label":"Search",placeholder:e.placeholder,autocomplete:"off",spellcheck:"false"},domProps:{value:e.query},on:{input:function(t){e.query=t.target.value},focus:function(t){e.focused=!0},blur:function(t){e.focused=!1},keyup:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.go(e.focusIndex)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:e.onUp(t)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:e.onDown(t)}]}}),e._v(" "),e.showSuggestions?n("ul",{staticClass:"suggestions",class:{"align-right":e.alignRight},on:{mouseleave:e.unfocus}},e._l(e.suggestions,(function(t,o){return n("li",{key:o,staticClass:"suggestion",class:{focused:o===e.focusIndex},on:{mousedown:function(t){return e.go(o)},mouseenter:function(t){return e.focus(o)}}},[n("a",{attrs:{href:t.path},on:{click:function(e){e.preventDefault()}}},[n("span",{staticClass:"page-title"},[e._v(e._s(t.title||t.path))]),e._v(" "),t.header?n("span",{staticClass:"header"},[e._v("> "+e._s(t.header.title))]):e._e()])])})),0):e._e()])}),[],!1,null,null,null).exports,a=(n(299),Object(i.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"sidebar-button",on:{click:function(t){return e.$emit("toggle-sidebar")}}},[n("svg",{staticClass:"icon",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",viewBox:"0 0 448 512"}},[n("path",{attrs:{fill:"currentColor",d:"M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"}})])])}),[],!1,null,null,null).exports),r=(n(142),n(144),n(300),n(71),n(69),n(149),n(21),n(150),n(151),n(25),n(290),n(24)),l=n(288),c=n(294),u={components:{NavLink:l.a,DropdownTransition:c.a},data:function(){return{open:!1}},props:{item:{required:!0}},methods:{toggle:function(){this.open=!this.open}}},h=(n(304),Object(i.a)(u,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"dropdown-wrapper",class:{open:e.open}},[n("a",{staticClass:"dropdown-title",on:{click:e.toggle}},[n("span",{staticClass:"title"},[n("i",{class:"iconfont "+e.item.icon}),e._v("\n "+e._s(e.item.text)+"\n ")]),e._v(" "),n("span",{staticClass:"arrow",class:e.open?"down":"right"})]),e._v(" "),n("DropdownTransition",[n("ul",{directives:[{name:"show",rawName:"v-show",value:e.open,expression:"open"}],staticClass:"nav-dropdown"},e._l(e.item.items,(function(t,o){return n("li",{key:t.link||o,staticClass:"dropdown-item"},["links"===t.type?n("h4",[e._v(e._s(t.text))]):e._e(),e._v(" "),"links"===t.type?n("ul",{staticClass:"dropdown-subitem-wrapper"},e._l(t.items,(function(e){return n("li",{key:e.link,staticClass:"dropdown-subitem"},[n("NavLink",{attrs:{item:e}})],1)})),0):n("NavLink",{attrs:{item:t}})],1)})),0)])],1)}),[],!1,null,null,null).exports),d=n(45),f={components:{NavLink:l.a,DropdownLink:h},computed:{userNav:function(){return this.$themeLocaleConfig.nav||this.$themeConfig.nav||[]},nav:function(){var e=this,t=this.$site.locales,n=this.userNav;if(t&&Object.keys(t).length>1){var o=this.$page.path,i=this.$router.options.routes,s=this.$themeConfig.locales||{},a={text:this.$themeLocaleConfig.selectText||"Languages",items:Object.keys(t).map((function(n){var a,r=t[n],l=s[n]&&s[n].label||r.lang;return r.lang===e.$lang?a=o:(a=o.replace(e.$localeConfig.path,n),i.some((function(e){return e.path===a}))||(a=n)),{text:l,link:a}}))};return[].concat(Object(r.a)(n),[a])}var l=this.$themeConfig.blogConfig||{},c=n.some((function(e){return!l.category||e.text===(l.category.text||"分类")})),u=n.some((function(e){return!l.tag||e.text===(l.tag.text||"标签")}));if(!c&&Object.hasOwnProperty.call(l,"category")){var h=l.category,d=this.$categories;n.splice(parseInt(h.location||2)-1,0,{items:d.list.map((function(e){return e.link=e.path,e.text=e.name,e})),text:h.text||"分类",type:"links",icon:"reco-category"})}if(!u&&Object.hasOwnProperty.call(l,"tag")){var f=l.tag;n.splice(parseInt(f.location||3)-1,0,{link:"/tag/",text:f.text||"标签",type:"links",icon:"reco-tag"})}return n},userLinks:function(){return(this.nav||[]).map((function(e){return Object.assign(Object(d.l)(e),{items:(e.items||[]).map(d.l)})}))},repoLink:function(){var e=this.$themeConfig.repo;return e?/^https?:/.test(e)?e:"https://github.com/".concat(e):""},repoLabel:function(){if(this.repoLink){if(this.$themeConfig.repoLabel)return this.$themeConfig.repoLabel;for(var e=this.repoLink.match(/^https?:\/\/[^/]+/)[0],t=["GitHub","GitLab","Bitbucket"],n=0;n<t.length;n++){var o=t[n];if(new RegExp(o,"i").test(e))return o}return"Source"}}}},p=(n(305),Object(i.a)(f,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.userLinks.length||e.repoLink?n("nav",{staticClass:"nav-links"},[e._l(e.userLinks,(function(e){return n("div",{key:e.link,staticClass:"nav-item"},["links"===e.type?n("DropdownLink",{attrs:{item:e}}):n("NavLink",{attrs:{item:e}})],1)})),e._v(" "),e.repoLink?n("a",{staticClass:"repo-link",attrs:{href:e.repoLink,target:"_blank",rel:"noopener noreferrer"}},[n("i",{class:"iconfont reco-"+e.repoLabel.toLowerCase()}),e._v("\n "+e._s(e.repoLabel)+"\n "),n("OutboundLink")],1):e._e()],2):e._e()}),[],!1,null,null,null).exports),g=n(306),m=n.n(g),v=(n(67),{light:{"--default-color-10":"rgba(255, 255, 255, 1)","--default-color-9":"rgba(255, 255, 255, .9)","--default-color-8":"rgba(255, 255, 255, .8)","--default-color-7":"rgba(255, 255, 255, .7)","--default-color-6":"rgba(255, 255, 255, .6)","--default-color-5":"rgba(255, 255, 255, .5)","--default-color-4":"rgba(255, 255, 255, .4)","--default-color-3":"rgba(255, 255, 255, .3)","--default-color-2":"rgba(255, 255, 255, .2)","--default-color-1":"rgba(255, 255, 255, .1)","--background-color":"#fff","--box-shadow":"0 1px 6px 0 rgba(0, 0, 0, 0.2)","--box-shadow-hover":"0 2px 16px 0 rgba(0, 0, 0, 0.2)","--text-color":"#2c3e50","--border-color":"#eaecef","--code-color":"rgba(27, 31, 35, 0.05)","--mask-color":"#888"},dark:{"--default-color-10":"rgba(0, 0, 0, 1)","--default-color-9":"rgba(0, 0, 0, .9)","--default-color-8":"rgba(0, 0, 0, .8)","--default-color-7":"rgba(0, 0, 0, .7)","--default-color-6":"rgba(0, 0, 0, .6)","--default-color-5":"rgba(0, 0, 0, .5)","--default-color-4":"rgba(0, 0, 0, .4)","--default-color-3":"rgba(0, 0, 0, .3)","--default-color-2":"rgba(0, 0, 0, .2)","--default-color-1":"rgba(0, 0, 0, .1)","--background-color":"#202124","--box-shadow":"0 1px 6px 0 rgba(0, 0, 0, .9)","--box-shadow-hover":"0 2px 26px 0 rgba(0, 0, 0, .9)","--text-color":"#fff","--border-color":"rgba(0, 0, 0, .3)","--code-color":"rgba(0, 0, 0, .3)","--mask-color":"#000"}});function b(e){var t=document.querySelector(":root"),n=v[e];for(var o in n)t.style.setProperty(o,n[o])}var _={name:"ModeOptions",data:function(){return{modeOptions:[{mode:"dark",title:"dark"},{mode:"auto",title:"auto"},{mode:"light",title:"light"}],currentMode:"auto"}},mounted:function(){var e=localStorage.getItem("mode"),t=this.$themeConfig.mode;this.currentMode=null===e?void 0===t?"auto":t:e,b(this.currentMode)},methods:{selectMode:function(e){e.mode!==this.currentMode&&("auto"===e.mode?function(){var e=window.matchMedia("(prefers-color-scheme: dark)").matches,t=window.matchMedia("(prefers-color-scheme: light)").matches,n=window.matchMedia("(prefers-color-scheme: no-preference)").matches,o=!e&&!t&&!n;if(window.matchMedia("(prefers-color-scheme: dark)").addListener((function(e){return e.matches&&b("dark")})),window.matchMedia("(prefers-color-scheme: light)").addListener((function(e){return e.matches&&b("light")})),e&&b("dark"),t&&b("light"),n||o){console.log("You specified no preference for a color scheme or your browser does not support it. I schedule dark mode during night time.");var i=(new Date).getHours();(i<4||i>=16)&&b("dark")}}():b(e.mode),localStorage.setItem("mode",e.mode),this.currentMode=e.mode)},getClass:function(e){return e!==this.currentMode?e:"".concat(e," active")}}},y=(n(307),Object(i.a)(_,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"mode-options"},[n("h4",{staticClass:"title"},[e._v("Choose mode")]),e._v(" "),n("ul",{staticClass:"color-mode-options"},e._l(e.modeOptions,(function(t,o){return n("li",{key:o,class:e.getClass(t.mode),on:{click:function(n){return e.selectMode(t)}}},[e._v(e._s(t.title))])})),0)])}),[],!1,null,null,null).exports),w={name:"UserSettings",directives:{"click-outside":m.a},components:{ModePicker:y},data:function(){return{showMenu:!1}},methods:{hideMenu:function(){this.showMenu=!1}}};n(308);function k(e,t){return e.ownerDocument.defaultView.getComputedStyle(e,null)[t]}var x={components:{SidebarButton:a,NavLinks:p,SearchBox:s,AlgoliaSearchBox:{},Mode:Object(i.a)(w,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:e.hideMenu,expression:"hideMenu"}],staticClass:"color-picker"},[n("a",{staticClass:"color-button",on:{click:function(t){t.preventDefault(),e.showMenu=!e.showMenu}}},[n("i",{staticClass:"iconfont reco-color"})]),e._v(" "),n("transition",{attrs:{name:"menu-transition",mode:"out-in"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.showMenu,expression:"showMenu"}],staticClass:"color-picker-menu"},[n("ModePicker")],1)])],1)}),[],!1,null,null,null).exports},data:function(){return{linksWrapMaxWidth:null}},mounted:function(){var e=this,t=parseInt(k(this.$el,"paddingLeft"))+parseInt(k(this.$el,"paddingRight")),n=function(){document.documentElement.clientWidth<719?e.linksWrapMaxWidth=null:e.linksWrapMaxWidth=e.$el.offsetWidth-t-(e.$refs.siteName&&e.$refs.siteName.offsetWidth||0)};n(),window.addEventListener("resize",n,!1)},computed:{algolia:function(){return this.$themeLocaleConfig.algolia||this.$themeConfig.algolia||{}},isAlgoliaSearch:function(){return this.algolia&&this.algolia.apiKey&&this.algolia.indexName}}},C=(n(309),Object(i.a)(x,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("header",{staticClass:"navbar"},[n("SidebarButton",{on:{"toggle-sidebar":function(t){return e.$emit("toggle-sidebar")}}}),e._v(" "),n("router-link",{staticClass:"home-link",attrs:{to:e.$localePath}},[e.$themeConfig.logo?n("img",{staticClass:"logo",attrs:{src:e.$withBase(e.$themeConfig.logo),alt:e.$siteTitle}}):e._e(),e._v(" "),e.$siteTitle?n("span",{ref:"siteName",staticClass:"site-name"},[e._v(e._s(e.$siteTitle))]):e._e()]),e._v(" "),n("div",{staticClass:"links",style:e.linksWrapMaxWidth?{"max-width":e.linksWrapMaxWidth+"px"}:{}},[n("Mode",{directives:[{name:"show",rawName:"v-show",value:null!==e.$themeConfig.mode,expression:"$themeConfig.mode !== null"}]}),e._v(" "),e.isAlgoliaSearch?n("AlgoliaSearchBox",{attrs:{options:e.algolia}}):!1!==e.$themeConfig.search&&!1!==e.$frontmatter.search?n("SearchBox"):e._e(),e._v(" "),n("NavLinks",{staticClass:"can-hide"})],1)],1)}),[],!1,null,null,null).exports),S=n(293),$=n(295),T={name:"Sidebar",components:{SidebarLinks:S.default,NavLinks:p,PersonalInfo:$.a},props:["items"]},M=(n(313),Object(i.a)(T,(function(){var e=this.$createElement,t=this._self._c||e;return t("aside",{staticClass:"sidebar"},[t("PersonalInfo"),this._v(" "),t("NavLinks"),this._v(" "),this._t("top"),this._v(" "),t("SidebarLinks",{attrs:{depth:0,items:this.items}}),this._v(" "),this._t("bottom")],2)}),[],!1,null,null,null).exports),L=(n(32),n(291)),O=n.n(L),I=n(242),P=n(240),j={mixins:[P.a],components:{ModuleTransition:I.a},props:{isPage:{type:Boolean,default:!1}},name:"Password",data:function(){return{warningText:"Konck! Knock!",key:""}},computed:{year:function(){return(new Date).getFullYear()}},methods:{inter:function(){var e=this.key,t=this.isPage,n=this.isHasPageKey,o=this.isHasKey,i=this.$refs.passwordBtn,s=O()(e.trim()),a="pageKey".concat(window.location.pathname),r=t?a:"key";if(sessionStorage.setItem(r,s),t?n():o()){this.warningText="Key Success";var l=document.getElementById("box").style.width;i.style.width="".concat(l-2,"px"),i.style.opacity=1,setTimeout((function(){window.location.reload()}),800)}else this.warningText="Key Error"},inputFocus:function(){this.warningText="Input Your Key"},inputBlur:function(){this.warningText="Konck! Knock!"},isHasKey:function(){var e=this.$themeConfig.keyPage.keys;return(e=e.map((function(e){return e.toLowerCase()}))).indexOf(sessionStorage.getItem("key"))>-1},isHasPageKey:function(){var e=this.$frontmatter.keys.map((function(e){return e.toLowerCase()})),t="pageKey".concat(window.location.pathname);return e&&e.indexOf(sessionStorage.getItem(t))>-1}}},E=(n(316),Object(i.a)(j,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"password-shadow"},[n("ModuleTransition",[n("h3",{directives:[{name:"show",rawName:"v-show",value:e.recoShowModule,expression:"recoShowModule"}],staticClass:"title"},[e._v(e._s(e.isPage?e.$frontmatter.title:e.$site.title||e.$localeConfig.title))])]),e._v(" "),n("ModuleTransition",{attrs:{delay:"0.08"}},[e.recoShowModule&&!e.isPage?n("p",{staticClass:"description"},[e._v(e._s(e.$site.description||e.$localeConfig.description))]):e._e()]),e._v(" "),n("ModuleTransition",{attrs:{delay:"0.16"}},[n("label",{directives:[{name:"show",rawName:"v-show",value:e.recoShowModule,expression:"recoShowModule"}],staticClass:"inputBox",attrs:{id:"box"}},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.key,expression:"key"}],attrs:{type:"password"},domProps:{value:e.key},on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.inter(t)},focus:e.inputFocus,blur:e.inputBlur,input:function(t){t.target.composing||(e.key=t.target.value)}}}),e._v(" "),n("span",[e._v(e._s(e.warningText))]),e._v(" "),n("button",{ref:"passwordBtn",on:{click:e.inter}},[e._v("OK")])])]),e._v(" "),n("ModuleTransition",{attrs:{delay:"0.24"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.recoShowModule,expression:"recoShowModule"}],staticClass:"footer"},[n("span",[n("i",{staticClass:"iconfont reco-theme"}),e._v(" "),n("a",{attrs:{target:"blank",href:"https://vuepress-theme-reco.recoluan.com"}},[e._v("vuePress-theme-reco")])]),e._v(" "),n("span",[n("i",{staticClass:"iconfont reco-copyright"}),e._v(" "),n("a",[e.$themeConfig.author||e.$site.title?n("span",[e._v(e._s(e.$themeConfig.author||e.$site.title))]):e._e(),e._v("\n   \n "),e.$themeConfig.startYear?n("span",[e._v(e._s(e.$themeConfig.startYear)+" - ")]):e._e(),e._v("\n "+e._s(e.year)+"\n ")])])])])],1)}),[],!1,null,"1e2a0cc0",null).exports),K=n(317),N={mixins:[P.a],components:{Sidebar:M,Navbar:C,Password:E,ModuleTransition:I.a},props:{sidebar:{type:Boolean,default:!0},isComment:{type:Boolean,default:!0}},data:function(){return{isSidebarOpen:!1,isHasKey:!0,isHasPageKey:!0,firstLoad:!0}},computed:{absoluteEncryption:function(){return this.$themeConfig.keyPage&&!0===this.$themeConfig.keyPage.absoluteEncryption},shouldShowComments:function(){var e=this.$frontmatter,t=e.isShowComments,n=e.home;return console.log(this.isComment,t,n,!(0==this.isComment||0==t||1==n)),!(0==this.isComment||0==t||1==n)},shouldShowNavbar:function(){var e=this.$site.themeConfig;return!1!==this.$page.frontmatter.navbar&&!1!==e.navbar&&(this.$title||e.logo||e.repo||e.nav||this.$themeLocaleConfig.nav)},shouldShowSidebar:function(){var e=this.$page.frontmatter;return!1!==this.sidebar&&!e.home&&!1!==e.sidebar&&this.sidebarItems.length},sidebarItems:function(){return Object(d.n)(this.$page,this.$page.regularPath,this.$site,this.$localePath)},pageClasses:function(){var e=this.$frontmatter.pageClass;return[{"no-navbar":!this.shouldShowNavbar,"sidebar-open":this.isSidebarOpen,"no-sidebar":!this.shouldShowSidebar},e]}},mounted:function(){var e=this;this.$router.afterEach((function(){e.isSidebarOpen=!1})),this.hasKey(),this.hasPageKey(),this.handleLoading()},methods:{hasKey:function(){var e=this.$themeConfig.keyPage;if(e&&e.keys&&0!==e.keys.length){var t=e.keys;t=t.map((function(e){return e.toLowerCase()})),this.isHasKey=t&&t.indexOf(sessionStorage.getItem("key"))>-1}else this.isHasKey=!0},hasPageKey:function(){var e=this.$frontmatter.keys;e&&0!==e.length?(e=e.map((function(e){return e.toLowerCase()})),this.isHasPageKey=e.indexOf(sessionStorage.getItem("pageKey".concat(window.location.pathname)))>-1):this.isHasPageKey=!0},toggleSidebar:function(e){this.isSidebarOpen="boolean"==typeof e?e:!this.isSidebarOpen},onTouchStart:function(e){this.touchStart={x:e.changedTouches[0].clientX,y:e.changedTouches[0].clientY}},onTouchEnd:function(e){var t=e.changedTouches[0].clientX-this.touchStart.x,n=e.changedTouches[0].clientY-this.touchStart.y;Math.abs(t)>Math.abs(n)&&Math.abs(t)>40&&(t>0&&this.touchStart.x<=80?this.toggleSidebar(!0):this.toggleSidebar(!1))},handleLoading:function(){var e=this,t=this.$frontmatter.home&&null==sessionStorage.getItem("firstLoad")?1e3:0;Object(K.setTimeout)((function(){e.firstLoad=!1,null==sessionStorage.getItem("firstLoad")&&sessionStorage.setItem("firstLoad",!1)}),t)}},watch:{$frontmatter:function(e,t){this.hasKey(),this.hasPageKey()}}},H=(n(319),Object(i.a)(N,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"theme-container",class:e.pageClasses,on:{touchstart:e.onTouchStart,touchend:e.onTouchEnd}},[e.absoluteEncryption?n("div",[n("transition",{attrs:{name:"fade"}},[e.firstLoad?n("LoadingPage"):e.isHasKey?n("div",[e.shouldShowNavbar?n("Navbar",{on:{"toggle-sidebar":e.toggleSidebar}}):e._e(),e._v(" "),n("div",{staticClass:"sidebar-mask",on:{click:function(t){return e.toggleSidebar(!1)}}}),e._v(" "),n("Sidebar",{attrs:{items:e.sidebarItems},on:{"toggle-sidebar":e.toggleSidebar}},[e._t("sidebar-top",null,{slot:"top"}),e._v(" "),e._t("sidebar-bottom",null,{slot:"bottom"})],2),e._v(" "),e.isHasPageKey?n("div",[e._t("default"),e._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:e.recoShowModule,expression:"recoShowModule"}]},[n("Comments",{attrs:{isShowComments:e.shouldShowComments}})],1)],2):n("Password",{attrs:{isPage:!0}})],1):n("Password")],1)],1):n("div",[n("transition",{attrs:{name:"fade"}},[n("LoadingPage",{directives:[{name:"show",rawName:"v-show",value:e.firstLoad,expression:"firstLoad"}],staticClass:"loading-wrapper"})],1),e._v(" "),n("transition",{attrs:{name:"fade"}},[n("Password",{directives:[{name:"show",rawName:"v-show",value:!e.isHasKey,expression:"!isHasKey"}],key:"out",staticClass:"password-wrapper-out"})],1),e._v(" "),n("div",{class:{hide:e.firstLoad||!e.isHasKey}},[e.shouldShowNavbar?n("Navbar",{on:{"toggle-sidebar":e.toggleSidebar}}):e._e(),e._v(" "),n("div",{staticClass:"sidebar-mask",on:{click:function(t){return e.toggleSidebar(!1)}}}),e._v(" "),n("Sidebar",{attrs:{items:e.sidebarItems},on:{"toggle-sidebar":e.toggleSidebar}},[e._t("sidebar-top",null,{slot:"top"}),e._v(" "),e._t("sidebar-bottom",null,{slot:"bottom"})],2),e._v(" "),n("Password",{directives:[{name:"show",rawName:"v-show",value:!e.isHasPageKey,expression:"!isHasPageKey"}],key:"in",staticClass:"password-wrapper-in",attrs:{isPage:!0}}),e._v(" "),n("div",{class:{hide:!e.isHasPageKey}},[e._t("default"),e._v(" "),n("ModuleTransition",{attrs:{delay:".48"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.recoShowModule,expression:"recoShowModule"}]},[n("Comments",{attrs:{isShowComments:e.shouldShowComments}})],1)])],2)],1)],1)])}),[],!1,null,"319dd33c",null));t.a=H.exports},259:function(e,t,n){},260:function(e,t,n){},261:function(e,t,n){},262:function(e,t,n){},263:function(e,t,n){},264:function(e,t,n){},265:function(e,t,n){},266:function(e,t,n){},267:function(e,t,n){},268:function(e,t,n){},269:function(e,t,n){},270:function(e,t,n){},271:function(e,t,n){},272:function(e,t,n){},273:function(e,t,n){},288:function(e,t,n){"use strict";n(144),n(69),n(290);var o=n(45),i={props:{item:{required:!0}},computed:{link:function(){return Object(o.c)(this.item.link)},exact:function(){var e=this;return this.$site.locales?Object.keys(this.$site.locales).some((function(t){return t===e.link})):"/"===this.link}},methods:{isExternal:o.h,isMailto:o.i,isTel:o.j}},s=n(3),a=Object(s.a)(i,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.isExternal(e.link)?n("a",{staticClass:"nav-link external",attrs:{href:e.link,target:e.isMailto(e.link)||e.isTel(e.link)?null:"_blank",rel:e.isMailto(e.link)||e.isTel(e.link)?null:"noopener noreferrer"}},[n("i",{class:"iconfont "+e.item.icon}),e._v("\n "+e._s(e.item.text)+"\n "),n("OutboundLink")],1):n("router-link",{staticClass:"nav-link",attrs:{to:e.link,exact:e.exact}},[n("i",{class:"iconfont "+e.item.icon}),e._v("\n "+e._s(e.item.text)+"\n")])}),[],!1,null,null,null);t.a=a.exports},289:function(e,t,n){"use strict";var o=n(0),i=n(95).trim;o({target:"String",proto:!0,forced:n(297)("trim")},{trim:function(){return i(this)}})},290:function(e,t,n){"use strict";var o=n(0),i=n(301);o({target:"String",proto:!0,forced:n(302)("link")},{link:function(e){return i(this,"a","href",e)}})},291:function(e,t,n){var o,i,s,a,r;o=n(314),i=n(292).utf8,s=n(152),a=n(292).bin,(r=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?a.stringToBytes(e):i.stringToBytes(e):s(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||(e=e.toString());for(var n=o.bytesToWords(e),l=8*e.length,c=1732584193,u=-271733879,h=-1732584194,d=271733878,f=0;f<n.length;f++)n[f]=16711935&(n[f]<<8|n[f]>>>24)|4278255360&(n[f]<<24|n[f]>>>8);n[l>>>5]|=128<<l%32,n[14+(l+64>>>9<<4)]=l;var p=r._ff,g=r._gg,m=r._hh,v=r._ii;for(f=0;f<n.length;f+=16){var b=c,_=u,y=h,w=d;c=p(c,u,h,d,n[f+0],7,-680876936),d=p(d,c,u,h,n[f+1],12,-389564586),h=p(h,d,c,u,n[f+2],17,606105819),u=p(u,h,d,c,n[f+3],22,-1044525330),c=p(c,u,h,d,n[f+4],7,-176418897),d=p(d,c,u,h,n[f+5],12,1200080426),h=p(h,d,c,u,n[f+6],17,-1473231341),u=p(u,h,d,c,n[f+7],22,-45705983),c=p(c,u,h,d,n[f+8],7,1770035416),d=p(d,c,u,h,n[f+9],12,-1958414417),h=p(h,d,c,u,n[f+10],17,-42063),u=p(u,h,d,c,n[f+11],22,-1990404162),c=p(c,u,h,d,n[f+12],7,1804603682),d=p(d,c,u,h,n[f+13],12,-40341101),h=p(h,d,c,u,n[f+14],17,-1502002290),c=g(c,u=p(u,h,d,c,n[f+15],22,1236535329),h,d,n[f+1],5,-165796510),d=g(d,c,u,h,n[f+6],9,-1069501632),h=g(h,d,c,u,n[f+11],14,643717713),u=g(u,h,d,c,n[f+0],20,-373897302),c=g(c,u,h,d,n[f+5],5,-701558691),d=g(d,c,u,h,n[f+10],9,38016083),h=g(h,d,c,u,n[f+15],14,-660478335),u=g(u,h,d,c,n[f+4],20,-405537848),c=g(c,u,h,d,n[f+9],5,568446438),d=g(d,c,u,h,n[f+14],9,-1019803690),h=g(h,d,c,u,n[f+3],14,-187363961),u=g(u,h,d,c,n[f+8],20,1163531501),c=g(c,u,h,d,n[f+13],5,-1444681467),d=g(d,c,u,h,n[f+2],9,-51403784),h=g(h,d,c,u,n[f+7],14,1735328473),c=m(c,u=g(u,h,d,c,n[f+12],20,-1926607734),h,d,n[f+5],4,-378558),d=m(d,c,u,h,n[f+8],11,-2022574463),h=m(h,d,c,u,n[f+11],16,1839030562),u=m(u,h,d,c,n[f+14],23,-35309556),c=m(c,u,h,d,n[f+1],4,-1530992060),d=m(d,c,u,h,n[f+4],11,1272893353),h=m(h,d,c,u,n[f+7],16,-155497632),u=m(u,h,d,c,n[f+10],23,-1094730640),c=m(c,u,h,d,n[f+13],4,681279174),d=m(d,c,u,h,n[f+0],11,-358537222),h=m(h,d,c,u,n[f+3],16,-722521979),u=m(u,h,d,c,n[f+6],23,76029189),c=m(c,u,h,d,n[f+9],4,-640364487),d=m(d,c,u,h,n[f+12],11,-421815835),h=m(h,d,c,u,n[f+15],16,530742520),c=v(c,u=m(u,h,d,c,n[f+2],23,-995338651),h,d,n[f+0],6,-198630844),d=v(d,c,u,h,n[f+7],10,1126891415),h=v(h,d,c,u,n[f+14],15,-1416354905),u=v(u,h,d,c,n[f+5],21,-57434055),c=v(c,u,h,d,n[f+12],6,1700485571),d=v(d,c,u,h,n[f+3],10,-1894986606),h=v(h,d,c,u,n[f+10],15,-1051523),u=v(u,h,d,c,n[f+1],21,-2054922799),c=v(c,u,h,d,n[f+8],6,1873313359),d=v(d,c,u,h,n[f+15],10,-30611744),h=v(h,d,c,u,n[f+6],15,-1560198380),u=v(u,h,d,c,n[f+13],21,1309151649),c=v(c,u,h,d,n[f+4],6,-145523070),d=v(d,c,u,h,n[f+11],10,-1120210379),h=v(h,d,c,u,n[f+2],15,718787259),u=v(u,h,d,c,n[f+9],21,-343485551),c=c+b>>>0,u=u+_>>>0,h=h+y>>>0,d=d+w>>>0}return o.endian([c,u,h,d])})._ff=function(e,t,n,o,i,s,a){var r=e+(t&n|~t&o)+(i>>>0)+a;return(r<<s|r>>>32-s)+t},r._gg=function(e,t,n,o,i,s,a){var r=e+(t&o|n&~o)+(i>>>0)+a;return(r<<s|r>>>32-s)+t},r._hh=function(e,t,n,o,i,s,a){var r=e+(t^n^o)+(i>>>0)+a;return(r<<s|r>>>32-s)+t},r._ii=function(e,t,n,o,i,s,a){var r=e+(n^(t|~o))+(i>>>0)+a;return(r<<s|r>>>32-s)+t},r._blocksize=16,r._digestsize=16,e.exports=function(e,t){if(null==e)throw new Error("Illegal argument "+e);var n=o.wordsToBytes(r(e,t));return t&&t.asBytes?n:t&&t.asString?a.bytesToString(n):o.bytesToHex(n)}},292:function(e,t){var n={utf8:{stringToBytes:function(e){return n.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(n.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t},bytesToString:function(e){for(var t=[],n=0;n<e.length;n++)t.push(String.fromCharCode(e[n]));return t.join("")}}};e.exports=n},293:function(e,t,n){"use strict";n.r(t);n(144);var o=n(45),i={name:"SidebarGroup",props:["item","open","collapsable","depth"],components:{DropdownTransition:n(294).a},beforeCreate:function(){this.$options.components.SidebarLinks=n(293).default},methods:{isActive:o.g}},s=(n(310),n(3)),a=Object(s.a)(i,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",{staticClass:"sidebar-group",class:[{collapsable:e.collapsable,"is-sub-group":0!==e.depth},"depth-"+e.depth]},[e.item.path?n("router-link",{staticClass:"sidebar-heading clickable",class:{open:e.open,active:e.isActive(e.$route,e.item.path)},attrs:{to:e.item.path},nativeOn:{click:function(t){return e.$emit("toggle")}}},[n("span",[e._v(e._s(e.item.title))]),e._v(" "),e.collapsable?n("span",{staticClass:"arrow",class:e.open?"down":"right"}):e._e()]):n("p",{staticClass:"sidebar-heading",class:{open:e.open},on:{click:function(t){return e.$emit("toggle")}}},[n("span",[e._v(e._s(e.item.title))]),e._v(" "),e.collapsable?n("span",{staticClass:"arrow",class:e.open?"down":"right"}):e._e()]),e._v(" "),n("DropdownTransition",[e.open||!e.collapsable?n("SidebarLinks",{staticClass:"sidebar-group-items",attrs:{items:e.item.children,sidebarDepth:e.item.sidebarDepth,depth:e.depth+1}}):e._e()],1)],1)}),[],!1,null,null,null).exports;n(34);function r(e,t,n,o){return e("router-link",{props:{to:t,activeClass:"",exactActiveClass:""},class:{active:o,"sidebar-link":!0}},n)}function l(e,t,n,i,s){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1;return!t||a>s?null:e("ul",{class:"sidebar-sub-headers"},t.map((function(t){var c=Object(o.g)(i,n+"#"+t.slug);return e("li",{class:"sidebar-sub-header"},[r(e,n+"#"+t.slug,t.title,c),l(e,t.children,n,i,s,a+1)])})))}var c={functional:!0,props:["item","sidebarDepth"],render:function(e,t){var n=t.parent,i=n.$page,s=(n.$site,n.$route),a=n.$themeConfig,c=n.$themeLocaleConfig,u=t.props,h=u.item,d=u.sidebarDepth,f=Object(o.g)(s,h.path),p="auto"===h.type?f||h.children.some((function(e){return Object(o.g)(s,h.basePath+"#"+e.slug)})):f,g=r(e,h.path,h.title||h.path,p),m=i.frontmatter.sidebarDepth||d||c.sidebarDepth||a.sidebarDepth,v=null==m?1:m,b=c.displayAllHeaders||a.displayAllHeaders;return"auto"===h.type?[g,l(e,h.children,h.basePath,s,v)]:(p||b)&&h.headers&&!o.f.test(h.path)?[g,l(e,Object(o.e)(h.headers),h.path,s,v)]:g}};n(311);var u={name:"SidebarLinks",components:{SidebarGroup:a,SidebarLink:Object(s.a)(c,void 0,void 0,!1,null,null,null).exports},props:["items","depth","sidebarDepth"],data:function(){return{openGroupIndex:0}},created:function(){this.refreshIndex()},watch:{$route:function(){this.refreshIndex()}},methods:{refreshIndex:function(){var e=function(e,t){for(var n=0;n<t.length;n++){var i=t[n];if("group"===i.type&&i.children.some((function(t){return"page"===t.type&&Object(o.g)(e,t.path)})))return n}return-1}(this.$route,this.items);e>-1&&(this.openGroupIndex=e)},toggleGroup:function(e){this.openGroupIndex=e===this.openGroupIndex?-1:e},isActive:function(e){return Object(o.g)(this.$route,e.regularPath)}}},h=Object(s.a)(u,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.items.length?n("ul",{staticClass:"sidebar-links"},e._l(e.items,(function(t,o){return n("li",{key:o},["group"===t.type?n("SidebarGroup",{attrs:{item:t,open:o===e.openGroupIndex,collapsable:t.collapsable||t.collapsible,depth:e.depth},on:{toggle:function(t){return e.toggleGroup(o)}}}):n("SidebarLink",{attrs:{sidebarDepth:e.sidebarDepth,item:t}})],1)})),0):e._e()}),[],!1,null,null,null);t.default=h.exports},294:function(e,t,n){"use strict";var o={name:"DropdownTransition",methods:{setHeight:function(e){e.style.height=e.scrollHeight+"px"},unsetHeight:function(e){e.style.height=""}}},i=(n(303),n(3)),s=Object(i.a)(o,(function(){var e=this.$createElement;return(this._self._c||e)("transition",{attrs:{name:"dropdown"},on:{enter:this.setHeight,"after-enter":this.unsetHeight,"before-leave":this.setHeight}},[this._t("default")],2)}),[],!1,null,null,null);t.a=s.exports},295:function(e,t,n){"use strict";n(312);var o=n(3),i=Object(o.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"personal-info-wrapper"},[e.$themeConfig.authorAvatar?n("img",{staticClass:"personal-img",attrs:{src:e.$withBase(e.$themeConfig.authorAvatar),alt:"author-avatar"}}):e._e(),e._v(" "),e.$themeConfig.author||e.$site.title?n("h3",{staticClass:"name"},[e._v("\n "+e._s(e.$themeConfig.author||e.$site.title)+"\n ")]):e._e(),e._v(" "),n("div",{staticClass:"num"},[n("div",[n("h3",[e._v(e._s(e.$recoPosts.length))]),e._v(" "),n("h6",[e._v("文章")])]),e._v(" "),n("div",[n("h3",[e._v(e._s(e.$tags.list.length))]),e._v(" "),n("h6",[e._v("标签")])])]),e._v(" "),n("hr")])}),[],!1,null,"6c8ffc9c",null);t.a=i.exports},297:function(e,t,n){var o=n(1),i=n(96);e.exports=function(e){return o((function(){return!!i[e]()||"​…᠎"!="​…᠎"[e]()||i[e].name!==e}))}},298:function(e,t,n){"use strict";var o=n(259);n.n(o).a},299:function(e,t,n){"use strict";var o=n(260);n.n(o).a},300:function(e,t,n){"use strict";var o=n(0),i=n(93),s=n(33),a=n(11),r=n(14),l=n(94),c=n(70),u=n(47),h=n(19),d=u("splice"),f=h("splice",{ACCESSORS:!0,0:0,1:2}),p=Math.max,g=Math.min;o({target:"Array",proto:!0,forced:!d||!f},{splice:function(e,t){var n,o,u,h,d,f,m=r(this),v=a(m.length),b=i(e,v),_=arguments.length;if(0===_?n=o=0:1===_?(n=0,o=v-b):(n=_-2,o=g(p(s(t),0),v-b)),v+n-o>9007199254740991)throw TypeError("Maximum allowed length exceeded");for(u=l(m,o),h=0;h<o;h++)(d=b+h)in m&&c(u,h,m[d]);if(u.length=o,n<o){for(h=b;h<v-o;h++)f=h+n,(d=h+o)in m?m[f]=m[d]:delete m[f];for(h=v;h>v-o+n;h--)delete m[h-1]}else if(n>o)for(h=v-o;h>b;h--)f=h+n-1,(d=h+o-1)in m?m[f]=m[d]:delete m[f];for(h=0;h<n;h++)m[h+b]=arguments[h+2];return m.length=v-o+n,u}})},301:function(e,t,n){var o=n(12),i=/"/g;e.exports=function(e,t,n,s){var a=String(o(e)),r="<"+t;return""!==n&&(r+=" "+n+'="'+String(s).replace(i,"&quot;")+'"'),r+">"+a+"</"+t+">"}},302:function(e,t,n){var o=n(1);e.exports=function(e){return o((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}},303:function(e,t,n){"use strict";var o=n(261);n.n(o).a},304:function(e,t,n){"use strict";var o=n(262);n.n(o).a},305:function(e,t,n){"use strict";var o=n(263);n.n(o).a},306:function(e,t){function n(e){return"function"==typeof e.value||(console.warn("[Vue-click-outside:] provided expression",e.expression,"is not a function."),!1)}function o(e){return void 0!==e.componentInstance&&e.componentInstance.$isServer}e.exports={bind:function(e,t,i){function s(t){if(i.context){var n=t.path||t.composedPath&&t.composedPath();n&&n.length>0&&n.unshift(t.target),e.contains(t.target)||function(e,t){if(!e||!t)return!1;for(var n=0,o=t.length;n<o;n++)try{if(e.contains(t[n]))return!0;if(t[n].contains(e))return!1}catch(e){return!1}return!1}(i.context.popupItem,n)||e.__vueClickOutside__.callback(t)}}n(t)&&(e.__vueClickOutside__={handler:s,callback:t.value},!o(i)&&document.addEventListener("click",s))},update:function(e,t){n(t)&&(e.__vueClickOutside__.callback=t.value)},unbind:function(e,t,n){!o(n)&&document.removeEventListener("click",e.__vueClickOutside__.handler),delete e.__vueClickOutside__}}},307:function(e,t,n){"use strict";var o=n(264);n.n(o).a},308:function(e,t,n){"use strict";var o=n(265);n.n(o).a},309:function(e,t,n){"use strict";var o=n(266);n.n(o).a},310:function(e,t,n){"use strict";var o=n(267);n.n(o).a},311:function(e,t,n){"use strict";var o=n(268);n.n(o).a},312:function(e,t,n){"use strict";var o=n(269);n.n(o).a},313:function(e,t,n){"use strict";var o=n(270);n.n(o).a},314:function(e,t){var n,o;n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&o.rotl(e,8)|4278255360&o.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=o.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,o=0;n<e.length;n++,o+=8)t[o>>>5]|=e[n]<<24-o%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n<e.length;n++)t.push((e[n]>>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},bytesToBase64:function(e){for(var t=[],o=0;o<e.length;o+=3)for(var i=e[o]<<16|e[o+1]<<8|e[o+2],s=0;s<4;s++)8*o+6*s<=8*e.length?t.push(n.charAt(i>>>6*(3-s)&63)):t.push("=");return t.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var t=[],o=0,i=0;o<e.length;i=++o%4)0!=i&&t.push((n.indexOf(e.charAt(o-1))&Math.pow(2,-2*i+8)-1)<<2*i|n.indexOf(e.charAt(o))>>>6-2*i);return t}},e.exports=o},315:function(e,t,n){"use strict";var o=n(271);n.n(o).a},316:function(e,t,n){"use strict";var o=n(272);n.n(o).a},317:function(e,t,n){var o="undefined"!=typeof global&&global||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function s(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new s(i.call(setTimeout,o,arguments),clearTimeout)},t.setInterval=function(){return new s(i.call(setInterval,o,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},s.prototype.unref=s.prototype.ref=function(){},s.prototype.close=function(){this._clearFn.call(o,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(318),t.setImmediate="undefined"!=typeof self&&self.setImmediate||"undefined"!=typeof global&&global.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||"undefined"!=typeof global&&global.clearImmediate||this&&this.clearImmediate},318:function(e,t){!function(e,t){"use strict";if(!e.setImmediate){var n,o,i,s,a,r=1,l={},c=!1,u=e.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(e);h=h&&h.setTimeout?h:e,"[object process]"==={}.toString.call(e.process)?n=function(e){process.nextTick((function(){f(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){f(e.data)},n=function(e){i.port2.postMessage(e)}):u&&"onreadystatechange"in u.createElement("script")?(o=u.documentElement,n=function(e){var t=u.createElement("script");t.onreadystatechange=function(){f(e),t.onreadystatechange=null,o.removeChild(t),t=null},o.appendChild(t)}):n=function(e){setTimeout(f,0,e)}:(s="setImmediate$"+Math.random()+"$",a=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(s)&&f(+t.data.slice(s.length))},e.addEventListener?e.addEventListener("message",a,!1):e.attachEvent("onmessage",a),n=function(t){e.postMessage(s+t,"*")}),h.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),o=0;o<t.length;o++)t[o]=arguments[o+1];var i={callback:e,args:t};return l[r]=i,n(r),r++},h.clearImmediate=d}function d(e){delete l[e]}function f(e){if(c)setTimeout(f,0,e);else{var t=l[e];if(t){c=!0;try{!function(e){var t=e.callback,n=e.args;switch(n.length){case 0:t();break;case 1:t(n[0]);break;case 2:t(n[0],n[1]);break;case 3:t(n[0],n[1],n[2]);break;default:t.apply(void 0,n)}}(t)}finally{d(e),c=!1}}}}}("undefined"==typeof self?"undefined"==typeof global?this:global:self)},319:function(e,t,n){"use strict";var o=n(273);n.n(o).a}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{287:function(t,e,n){},331:function(t,e,n){"use strict";var a=n(287);n.n(a).a},346:function(t,e,n){"use strict";n.r(e);var a={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,a=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||a().default)}},i=(n(331),n(3)),r=Object(i.a)(a,void 0,void 0,!1,null,"312e2a2a",null);e.default=r.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{340:function(t,e,n){"use strict";n.r(e);var s=n(3),l=Object(s.a)({},(function(){var t=this.$createElement;return(this._self._c||t)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);e.default=l.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{339:function(a,t,v){"use strict";v.r(t);var _=v(3),r=Object(_.a)({},(function(){var a=this,t=a.$createElement,v=a._self._c||t;return v("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[v("h1",{attrs:{id:"边缘网关"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#边缘网关"}},[a._v("#")]),a._v(" 边缘网关")]),a._v(" "),v("h2",{attrs:{id:"简述"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#简述"}},[a._v("#")]),a._v(" 简述")]),a._v(" "),v("h3",{attrs:{id:"什么是边缘网关"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#什么是边缘网关"}},[a._v("#")]),a._v(" 什么是边缘网关")]),a._v(" "),v("p",[a._v("边缘网关是部署在网络边缘侧的网关,通过"),v("code",[a._v("网络联接")]),a._v("、"),v("code",[a._v("协议转换")]),a._v("、"),v("code",[a._v("逻辑运算")]),a._v("等功能联接物理和数字世界,提供轻量化的联接管理、实时数据分析及应用管理功能。")]),a._v(" "),v("h3",{attrs:{id:"边缘网关功能"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#边缘网关功能"}},[a._v("#")]),a._v(" 边缘网关功能")]),a._v(" "),v("ul",[v("li",[a._v("丰富的接口和协议,方便现场设备能够广泛的接入")]),a._v(" "),v("li",[a._v("支持物联网协议(如MQTT),兼容协议广、开放包容,平滑接入各种云平台")]),a._v(" "),v("li",[a._v("支持本地存储")]),a._v(" "),v("li",[a._v("兼容多种通信方式,专利技术保障无线通信“永久在线”")]),a._v(" "),v("li",[a._v("多数据中心同步传输,管理协同更高效")]),a._v(" "),v("li",[a._v("支持数据补传")]),a._v(" "),v("li",[a._v("支持本地或远程配置升级,网关管理简便")]),a._v(" "),v("li",[a._v("专为无人值守环境设计,适用恶劣工况环境")]),a._v(" "),v("li",[a._v("高清触摸屏(选配)")])]),a._v(" "),v("h2",{attrs:{id:"vpn物联网方案"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#vpn物联网方案"}},[a._v("#")]),a._v(" VPN物联网方案")]),a._v(" "),v("h3",{attrs:{id:"概述"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#概述"}},[a._v("#")]),a._v(" 概述")]),a._v(" "),v("p",[a._v("通过搭建VPN服务器实现泵房和服务器在同一"),v("code",[a._v("局域网")]),a._v("。通过传统组态软件进行即可视化调试。")]),a._v(" "),v("h3",{attrs:{id:"数据流程图"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#数据流程图"}},[a._v("#")]),a._v(" 数据流程图")]),a._v(" "),v("p",[v("img",{attrs:{src:"/img/gateway/oldDataStream.jpg",alt:"数据流程图"}})]),a._v(" "),v("h3",{attrs:{id:"分析"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#分析"}},[a._v("#")]),a._v(" 分析")]),a._v(" "),v("ul",[v("li",[a._v("优点\n"),v("ol",[v("li",[a._v("远程维护便捷性")]),a._v(" "),v("li",[a._v("上位机选型空间大")])])]),a._v(" "),v("li",[a._v("缺点\n"),v("ol",[v("li",[a._v("VPN组网价格较高")]),a._v(" "),v("li",[a._v("实施需要专业网络技能")])])])]),a._v(" "),v("h2",{attrs:{id:"边缘网关物联网方案"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#边缘网关物联网方案"}},[a._v("#")]),a._v(" 边缘网关物联网方案")]),a._v(" "),v("h3",{attrs:{id:"概述-2"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#概述-2"}},[a._v("#")]),a._v(" 概述")]),a._v(" "),v("p",[v("code",[a._v("分布式")]),a._v("部署边缘网关,通过每个边缘网关采集各自负责的边缘模块,在边缘解决"),v("code",[a._v("设备通讯")]),a._v(","),v("code",[a._v("协议转换")]),a._v(","),v("code",[a._v("存储")]),a._v("等功能,并跟数据中心建立"),v("code",[a._v("持久化``双向链接")])]),a._v(" "),v("h3",{attrs:{id:"数据流程图-2"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#数据流程图-2"}},[a._v("#")]),a._v(" 数据流程图")]),a._v(" "),v("p",[v("img",{attrs:{src:"/img/gateway/newDataStream.jpg",alt:"数据流程图"}})]),a._v(" "),v("h3",{attrs:{id:"分析-2"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#分析-2"}},[a._v("#")]),a._v(" 分析")]),a._v(" "),v("ul",[v("li",[a._v("优点\n"),v("ol",[v("li",[a._v("将通讯和解析压力分散到各自模块当中")]),a._v(" "),v("li",[a._v("每个通信单元互不影响,排查故障简单")])])]),a._v(" "),v("li",[a._v("缺点\n"),v("ol",[v("li",[a._v("边缘网关种类繁多,不易选型")]),a._v(" "),v("li",[a._v("由于下位机的不确定性,难一做到一个网关适配所有的下位机,通常是根据实际工况选型对应的设备")])])])]),a._v(" "),v("h2",{attrs:{id:"市场边缘网关产品"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#市场边缘网关产品"}},[a._v("#")]),a._v(" 市场边缘网关产品")]),a._v(" "),v("p",[v("a",{attrs:{href:"https://g.civnet.cn:8443/doc/software/raw/master/%E7%89%A9%E8%81%94%E7%BD%91%E5%85%B3%E4%BA%A7%E5%93%81%E5%AF%B9%E6%AF%94.xlsx",target:"_blank",rel:"noopener noreferrer"}},[a._v("产品对比"),v("OutboundLink")],1)])])}),[],!1,null,null,null);t.default=r.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{341:function(t,r,e){"use strict";e.r(r);var a=e(3),i=Object(a.a)({},(function(){var t=this,r=t.$createElement,e=t._self._c||r;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"设备通信"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#设备通信"}},[t._v("#")]),t._v(" 设备通信")]),t._v(" "),e("h2",{attrs:{id:"通讯方式"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#通讯方式"}},[t._v("#")]),t._v(" 通讯方式")]),t._v(" "),e("ul",[e("li",[t._v("串口通信\n串行接口是一种可以将接收来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接收的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。")]),t._v(" "),e("li",[t._v("以太网通信\n以太网是一种基带局域网技术,以太网通信是一种使用同轴电缆作为网络媒体,采用载波多路访问和冲突检测机制的通信方式,数据传输速率达到1Gbit/s,可满足非持续性网络数据传输的需要。")])]),t._v(" "),e("h2",{attrs:{id:"环境准备"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#环境准备"}},[t._v("#")]),t._v(" 环境准备")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"https://g.civnet.cn:8443/doc/software/raw/master/kepserverex.rar",target:"_blank",rel:"noopener noreferrer"}},[t._v("kepserver6.4"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://g.civnet.cn:8443/doc/software/raw/master/KEPServerEX-6.4.321.0%20%E7%88%86%E7%A0%B4(%E5%AE%8C%E7%BE%8E).rar",target:"_blank",rel:"noopener noreferrer"}},[t._v("kepserver6.4补丁"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://g.civnet.cn:8443/doc/software/raw/master/jre-8u241-windows-i586.exe",target:"_blank",rel:"noopener noreferrer"}},[t._v("jre-8u241-windows-i586"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://g.civnet.cn:8443/doc/software/raw/master/mqttfx-1.7.0-windows-x64.exe",target:"_blank",rel:"noopener noreferrer"}},[t._v("mqtt.fx"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://www.emqx.io/cn/",target:"_blank",rel:"noopener noreferrer"}},[t._v("emq"),e("OutboundLink")],1)])]),t._v(" "),e("h2",{attrs:{id:"kepserver-modbus-rtu-serial"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#kepserver-modbus-rtu-serial"}},[t._v("#")]),t._v(" KepServer Modbus RTU Serial")]),t._v(" "),e("ol",[e("li",[t._v("kepServer添加通道选择Modbus RTU Serial驱动"),e("br"),t._v(" "),e("img",{attrs:{src:"/img/gateway/rtu1.jpg",alt:"添加通道1"}})]),t._v(" "),e("li",[t._v("指定通道名称"),e("br"),t._v(" "),e("img",{attrs:{src:"/img/gateway/rtu2.jpg",alt:"添加通道2"}})]),t._v(" "),e("li",[t._v("分配通道"),e("br"),t._v(" "),e("img",{attrs:{src:"/img/gateway/rtu3.jpg",alt:"添加通道3"}})]),t._v(" "),e("li",[e("code",[t._v("**重要**")]),t._v("选择COM口"),e("br"),t._v(" "),e("img",{attrs:{src:"/img/gateway/rtu4.jpg",alt:"添加通道4"}})]),t._v(" "),e("li",[t._v("选择完成添加通道"),e("br"),t._v(" "),e("img",{attrs:{src:"/img/gateway/rtu6.jpg",alt:"添加通道6"}})]),t._v(" "),e("li",[t._v("添加设备"),e("br"),t._v(" "),e("img",{attrs:{src:"/img/gateway/rtu11.jpg",alt:"添加设备1"}})]),t._v(" "),e("li",[t._v("确定设备型号"),e("br"),t._v(" "),e("img",{attrs:{src:"/img/gateway/rtu12.jpg",alt:"添加设备2"}})]),t._v(" "),e("li",[e("code",[t._v("**重要**")]),t._v("确定从站ID"),e("br"),t._v(" "),e("img",{attrs:{src:"/img/gateway/rtu13.jpg",alt:"添加设备2"}})]),t._v(" "),e("li",[t._v("选择完成添加设备"),e("br"),t._v(" "),e("img",{attrs:{src:"/img/gateway/rtu14.jpg",alt:"添加设备3"}})]),t._v(" "),e("li",[e("code",[t._v("**重要**")]),t._v("根据地址表添加条目"),e("br"),t._v(" "),e("img",{attrs:{src:"/img/gateway/rtu15.jpg",alt:"添加条目1"}})]),t._v(" "),e("li",[t._v("验证采集结构,通信质量良好证明通信成功"),e("br"),t._v(" "),e("img",{attrs:{src:"/img/gateway/rtu16.jpg",alt:"测试条目1"}})])]),t._v(" "),e("h2",{attrs:{id:"kepserver-iot-gateway"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#kepserver-iot-gateway"}},[t._v("#")]),t._v(" KepServer IoT Gateway")]),t._v(" "),e("p",[t._v("使用KepServer IoT Gateway插件需要安装"),e("code",[t._v("32位jre")]),e("a",{attrs:{href:"https://g.civnet.cn:8443/doc/software/raw/master/jre-8u241-windows-i586.exe",target:"_blank",rel:"noopener noreferrer"}},[t._v("jre-8u241-windows-i586"),e("OutboundLink")],1)]),t._v(" "),e("ol",[e("li",[t._v("添加IoT Agent,选择MQTT Client"),e("br"),t._v(" "),e("img",{attrs:{src:"/img/gateway/iot1.jpg",alt:"添加iot1"}})]),t._v(" "),e("li",[t._v("填写MQTT服务器参数信息\n我这里使用的EMQ服务器搭建的测试服务器,可以参考"),e("a",{attrs:{href:"https://www.emqx.io/cn/",target:"_blank",rel:"noopener noreferrer"}},[t._v("emq"),e("OutboundLink")],1),e("br"),t._v(" "),e("img",{attrs:{src:"/img/gateway/iot2.jpg",alt:"添加iot2"}})]),t._v(" "),e("li",[t._v("填写MQTT客户端认证信息,注意:client ID相同会踢掉前任"),e("br"),t._v(" "),e("img",{attrs:{src:"/img/gateway/iot3.jpg",alt:"添加iot3"}})]),t._v(" "),e("li",[t._v("选择要转发的条目"),e("br"),t._v(" "),e("img",{attrs:{src:"/img/gateway/iot4.jpg",alt:"添加iot4"}})]),t._v(" "),e("li",[t._v("转发规则"),e("br"),t._v(" "),e("ul",[e("li",[e("code",[t._v("only Data Changes")]),t._v("数据变化时上报")]),t._v(" "),e("li",[e("code",[t._v("every scan")]),t._v("每次轮询就上报"),e("br"),t._v(" "),e("img",{attrs:{src:"/img/gateway/iot5.jpg",alt:"添加iot5"}})])])]),t._v(" "),e("li",[t._v("验证转发,这里采用的MQTT.fx订阅mqtt服务器数据"),e("a",{attrs:{href:"https://g.civnet.cn:8443/doc/software/raw/master/mqttfx-1.7.0-windows-x64.exe",target:"_blank",rel:"noopener noreferrer"}},[t._v("mqtt.fx"),e("OutboundLink")],1),e("br"),t._v(" "),e("img",{attrs:{src:"/img/gateway/iot6.jpg",alt:"添加iot6"}})]),t._v(" "),e("li",[t._v("控制主题,网关订阅主题实现反向控制设备"),e("br"),t._v(" "),e("img",{attrs:{src:"/img/gateway/iot7.jpg",alt:"添加iot7"}})])])])}),[],!1,null,null,null);r.default=i.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{342:function(t,r,a){"use strict";a.r(r);var e=a(3),s=Object(e.a)({},(function(){var t=this,r=t.$createElement,a=t._self._c||r;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"modbus"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#modbus"}},[t._v("#")]),t._v(" modbus")]),t._v(" "),a("h2",{attrs:{id:"应用层协议"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#应用层协议"}},[t._v("#")]),t._v(" 应用层协议")]),t._v(" "),a("p",[t._v("Modbus协议是OSI模型的"),a("code",[t._v("第七层")]),t._v("的应用层通讯协议,定义了不同类型设备间交换信息方式,以及信息的格式。"),a("br"),t._v(" "),a("img",{attrs:{src:"/img/gateway/modbusosi.png",alt:"image"}})]),t._v(" "),a("h2",{attrs:{id:"工作方式"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#工作方式"}},[t._v("#")]),t._v(" 工作方式")]),t._v(" "),a("p",[t._v("Modbus的工作方式是"),a("code",[t._v("请求")]),t._v("/"),a("code",[t._v("应答")]),t._v(",每次通讯都是主站先发送指令,可以是广播,或是向特定从站的单播,从站响应指令,并按要求应答,或者报告异常。当主站不发送请求时,从站不会自己发出数据,从站和从站之间不能直接通讯。")]),t._v(" "),a("h2",{attrs:{id:"工作模式"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#工作模式"}},[t._v("#")]),t._v(" 工作模式")]),t._v(" "),a("p",[t._v("分为"),a("code",[t._v("串行")]),t._v("和"),a("code",[t._v("TCP")]),t._v(",串行又分为"),a("code",[t._v("ASCII")]),t._v("和"),a("code",[t._v("RTU")]),t._v("。对于Modbus TCP而言,主站通常称为Client,从站称为Server;而对于Modbus RTU和Modbus ASCII来说,主站是Master,从站是Slave。Modbus TCP基于以太网和TCP/IP协议,Modbus RTU和Modbus ASCII则是使用异步串行传输(通常是RS-232/422/485)。")]),t._v(" "),a("h2",{attrs:{id:"协议内容"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#协议内容"}},[t._v("#")]),t._v(" 协议内容")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://g.civnet.cn:8443/doc/software/raw/master/Modbus%E9%80%9A%E8%AE%AF%E5%8D%8F%E8%AE%AE.pdf",target:"_blank",rel:"noopener noreferrer"}},[t._v("协议内容下载地址"),a("OutboundLink")],1),t._v(" "),a("br"),t._v(" "),a("img",{attrs:{src:"/img/gateway/mod1.jpg",alt:"modbus1"}}),t._v(" "),a("img",{attrs:{src:"/img/gateway/mod2.jpg",alt:"modbus2"}}),t._v(" "),a("br"),t._v(" "),a("img",{attrs:{src:"/img/gateway/mod3.jpg",alt:"modbus3"}}),t._v(" "),a("img",{attrs:{src:"/img/gateway/mod4.jpg",alt:"modbus4"}})])]),t._v(" "),a("h2",{attrs:{id:"包格式"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#包格式"}},[t._v("#")]),t._v(" 包格式")]),t._v(" "),a("p",[t._v("Modbus协议的报文(或帧)的基本格式是:"),a("br"),t._v(" "),a("img",{attrs:{src:"/img/gateway/modbusContent.png",alt:"image"}})]),t._v(" "),a("ul",[a("li",[t._v("对TCP。Modbus On TCP给PDU加上表头,没有差错校验(因为下面的TCP是基于可靠的连接),然后交给TCP层。")]),t._v(" "),a("li",[t._v("对serial。PDU被直接交给Modbus链路层加上表头和校验码。表头包含Modbus从站地址,RTU用CRC校验,ASCII用LRC校验。\n表头包含了从站的地址,功能码告诉从站要执行何种功能,数据区是具体的信息。")])]),t._v(" "),a("p",[t._v("先以RTU为例,主站发送了:")]),t._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("09 03 00 04 00 03 XX YY\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br")])]),a("p",[t._v('主站告诉从站09,我要做"03"操作,即读Holding Register内容,开始偏移地址为4、长度为3。因为Holding Register的有效地址范围是40001-49999,开始偏移地址4、长度为3即地址40005、40006、40007的值。"XXYY"代表RTU的校验位CRC。\n从站收到信息后,就从对应的寄存器找到数值,回复:')]),t._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("09 03 06 02 2B 00 01 00 64 XX YY\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br")])]),a("p",[t._v('从站回答,该地址偏移为4的寄存器值为02 2B,地址偏移为5的寄存器值为00 01,地址偏移为6的寄存器值为00 64。其中"09 03"是复制了主站发来的地址和功能码,"06"代表接下来的数据共有6个字节。\n如果从站收到了一个错误的请求,例如发现要读的寄存器地址是错误的,则回复:09 83 02 XX YY\n其中"83"是把功能码"03"的最高位置1,告诉主站发生了异常,"02"是异常码,说明发生了无效地址的异常。\n#Modbus的四种数据类型')]),t._v(" "),a("ul",[a("li",[t._v("Coil:可读可写bit,既可以是一个输出量输出点,也可以是数字量输入点,有效的地址范围是1-9999。")]),t._v(" "),a("li",[t._v("Input Status:只读bit,即数字量输出点,有效地址范围是10001-19999。")]),t._v(" "),a("li",[t._v("Input Register:只读word,可以用作模拟量或16位打包输入点,有效地址范围是30001-39999。")]),t._v(" "),a("li",[t._v("Holding Register:可读可写word,既可以是一个模拟量或16位打包输入点,也可以是模拟量或16位打包输出点,有效地址范围是40001-49999。")])]),t._v(" "),a("p",[t._v("在PLC或DCS上用点名标记不同的变量,在Modbus则以数据地址来标记每个点。以上所说的地址都是参考地址,而不是实际的物理地址。上述的地址是在设备中的地址,按照"),a("code",[t._v("PLC的习惯从1开始递增")]),t._v(",而Modbus报文中是从0开始递增。例如地址偏移为4、5、6的Holding Register,其实是指参考地址是40005、40006、40007的寄存器。\n#TCP、Serial的区别\n对于Modbus TCP而言,主站通常称为Client,从站称为Server;而对于Modbus RTU和Modbus ASCII来说,主站是Master,从站是Slave。Modbus TCP端口号是502"),a("br"),t._v(" "),a("a",{attrs:{href:"http://www.ip33.com/crc.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("CRC循环校验"),a("OutboundLink")],1)]),t._v(" "),a("h2",{attrs:{id:"rtu和ascii的区别"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#rtu和ascii的区别"}},[t._v("#")]),t._v(" RTU和ASCII的区别")]),t._v(" "),a("p",[t._v("RTU模式下,一个字节的数据,传输的就是一个字节。ASCII模式下,同样一个字节数据用了两个字节来传输。\n例如,要传输数字0x5B,RTU传输的是0101 1011(二进制),而ASCII传输的是00110101(53,ASCII的5的码是53)和01000010。可见,ASCII传输的速率是RTU的一半。ASCII模式采用LRC校验,RTU模式采用16位CRC校验。")]),t._v(" "),a("h2",{attrs:{id:"modbus-slave-poll"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#modbus-slave-poll"}},[t._v("#")]),t._v(" modbus Slave&Poll")]),t._v(" "),a("ul",[a("li",[t._v("使用教程:"),a("a",{attrs:{href:"https://www.cnblogs.com/hieroly/p/9063710.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("参考链接"),a("OutboundLink")],1)]),t._v(" "),a("li",[t._v("下载地址:\n"),a("a",{attrs:{href:"https://g.civnet.cn:8443/doc/software/raw/master/ModbusPollSalveSN.rar",target:"_blank",rel:"noopener noreferrer"}},[t._v("modbus Slave&Poll"),a("OutboundLink")],1),t._v(" "),a("a",{attrs:{href:"https://g.civnet.cn:8443/doc/software/raw/master/virtualserialportdriver8.rar",target:"_blank",rel:"noopener noreferrer"}},[t._v("虚拟串口"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);r.default=s.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{343:function(t,s,e){"use strict";e.r(s);var n=e(3),r=Object(n.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"iot"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#iot"}},[this._v("#")]),this._v(" IoT")])])}),[],!1,null,null,null);s.default=r.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{344:function(t,e,s){"use strict";s.r(e);var n=s(3),r=Object(n.a)({},(function(){var t=this.$createElement,e=this._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("h1",{attrs:{id:"schneider"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#schneider"}},[this._v("#")]),this._v(" Schneider")])])}),[],!1,null,null,null);e.default=r.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{345:function(t,s,e){"use strict";e.r(s);var n=e(3),i=Object(n.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"siemens"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#siemens"}},[this._v("#")]),this._v(" siemens")])])}),[],!1,null,null,null);s.default=i.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{234:function(n,w,o){}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{236:function(t,e,a){},237:function(t,e,a){},238:function(t,e,a){},239:function(t,e,a){},241:function(t,e,a){"use strict";function n(){var t=["#e15b64","#f47e60","#f8b26a","#abbd81","#849b87","#e15b64","#f47e60","#f8b26a","#f26d6d","#67cc86","#fb9b5f","#3498db"];return t[Math.floor(Math.random()*t.length)]}a.d(e,"a",(function(){return n}))},243:function(t,e,a){"use strict";a(245),a(20),a(145),a(21),a(25);var n=a(45),r={props:{pageInfo:{type:Object,default:function(){return{}}},currentTag:{type:String,default:""},showAccessNumber:{type:Boolean,default:!1}},data:function(){return{numStyle:{fontSize:".9rem",fontWeight:"normal",color:"#999"}}},filters:{formatDateValue:function(t){if(!t)return"";t=t.replace("T"," ").slice(0,t.lastIndexOf("."));var e=Number(t.substr(11,2)),a=Number(t.substr(14,2)),r=Number(t.substr(17,2));return e>0||a>0||r>0?Object(n.d)(t):Object(n.d)(t,"yyyy-MM-dd")}},methods:{goTags:function(t){this.$router.push({path:"/tags/".concat(t,"/")})}}},s=(a(247),a(3)),o=Object(s.a)(r,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[t.pageInfo.frontmatter.author||t.$themeConfig.author||t.$site.title?a("i",{staticClass:"iconfont reco-account"},[a("span",[t._v(t._s(t.pageInfo.frontmatter.author||t.$themeConfig.author||t.$site.title))])]):t._e(),t._v(" "),t.pageInfo.frontmatter.date?a("i",{staticClass:"iconfont reco-date"},[a("span",[t._v(t._s(t._f("formatDateValue")(t.pageInfo.frontmatter.date)))])]):t._e(),t._v(" "),!0===t.showAccessNumber?a("i",{staticClass:"iconfont reco-eye"},[a("AccessNumber",{attrs:{idVal:t.pageInfo.path,numStyle:t.numStyle}})],1):t._e(),t._v(" "),t.pageInfo.frontmatter.tags?a("i",{staticClass:"iconfont reco-tag tags"},t._l(t.pageInfo.frontmatter.tags,(function(e,n){return a("span",{key:n,staticClass:"tag-item",class:{active:t.currentTag==e},on:{click:function(a){return t.goTags(e)}}},[t._v("\n "+t._s(e)+"\n ")])})),0):t._e()])}),[],!1,null,"484a899e",null);e.a=o.exports},245:function(t,e,a){var n=a(0),r=a(246);n({target:"Array",proto:!0,forced:r!==[].lastIndexOf},{lastIndexOf:r})},246:function(t,e,a){"use strict";var n=a(17),r=a(33),s=a(11),o=a(26),i=a(19),c=Math.min,l=[].lastIndexOf,u=!!l&&1/[1].lastIndexOf(1,-0)<0,h=o("lastIndexOf"),f=i("indexOf",{ACCESSORS:!0,1:0}),d=u||!h||!f;t.exports=d?function(t){if(u)return l.apply(this,arguments)||0;var e=n(this),a=s(e.length),o=a-1;for(arguments.length>1&&(o=c(o,r(arguments[1]))),o<0&&(o=a+o);o>=0;o--)if(o in e&&e[o]===t)return o||0;return-1}:l},247:function(t,e,a){"use strict";var n=a(236);a.n(n).a},248:function(t,e,a){"use strict";var n=a(237);a.n(n).a},249:function(t,e,a){"use strict";var n=a(238);a.n(n).a},250:function(t,e,a){"use strict";a(143);e.a={methods:{_getStoragePage:function(){var t=window.location.pathname,e=JSON.parse(sessionStorage.getItem("currentPage"));return null===e||t!==e.path?(sessionStorage.setItem("currentPage",{page:1,path:""}),1):parseInt(e.page)},_setStoragePage:function(t){var e=window.location.pathname;sessionStorage.setItem("currentPage",JSON.stringify({page:t,path:e}))}}}},252:function(t,e,a){},253:function(t,e,a){},254:function(t,e,a){"use strict";a(20);var n={components:{PageInfo:a(243).a},props:["item","currentPage","currentTag"]},r=(a(248),a(3)),s={components:{NoteAbstractItem:Object(r.a)(n,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"abstract-item"},[t.item.frontmatter.sticky?a("i",{staticClass:"iconfont reco-sticky"}):t._e(),t._v(" "),a("div",{staticClass:"title"},[t.item.frontmatter.keys?a("i",{staticClass:"iconfont reco-lock"}):t._e(),t._v(" "),a("router-link",{attrs:{to:t.item.path}},[t._v(t._s(t.item.title))])],1),t._v(" "),a("div",{staticClass:"abstract",domProps:{innerHTML:t._s(t.item.excerpt)}}),t._v(" "),a("hr",{staticClass:"hr"}),t._v(" "),a("PageInfo",{attrs:{pageInfo:t.item,currentTag:t.currentTag}})],1)}),[],!1,null,"28f76ce9",null).exports},props:["data","currentPage","currentTag"],computed:{currentPageData:function(){var t=10*this.currentPage-10,e=10*this.currentPage;return this.data.slice(t,e)}}},o=(a(249),Object(r.a)(s,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"abstract-wrapper"},t._l(t.currentPageData,(function(e){return a("NoteAbstractItem",{key:e.path,attrs:{item:e,currentPage:t.currentPage,currentTag:t.currentTag}})})),1)}),[],!1,null,"b014bc36",null));e.a=o.exports},255:function(t,e,a){"use strict";var n=a(239);a.n(n).a},257:function(t,e,a){"use strict";a(142);var n=a(24),r=a(241),s={props:{currentTag:{type:String,default:""}},computed:{tags:function(){return[{name:"全部",path:"/tag/"}].concat(Object(n.a)(this.$tags.list))}},methods:{tagClick:function(t){this.$emit("getCurrentTag",t)},getOneColor:r.a}},o=(a(255),a(3)),i=Object(o.a)(s,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"tags"},t._l(t.tags,(function(e,n){return a("span",{key:n,class:{active:e.name==t.currentTag},style:{backgroundColor:t.getOneColor()},on:{click:function(a){return t.tagClick(e)}}},[t._v(t._s(e.name))])})),0)}),[],!1,null,"36b9f66a",null);e.a=i.exports},276:function(t,e,a){},277:function(t,e,a){},278:function(t,e,a){},279:function(t,e,a){},280:function(t,e,a){},281:function(t,e,a){"use strict";var n=a(252);a.n(n).a},282:function(t,e,a){"use strict";var n=a(253);a.n(n).a},321:function(t,e,a){"use strict";var n=a(276);a.n(n).a},322:function(t,e,a){t.exports=a.p+"assets/img/home-bg.7b267d7c.jpg"},323:function(t,e,a){"use strict";var n=a(277);a.n(n).a},324:function(t,e,a){"use strict";var n=a(278);a.n(n).a},325:function(t,e,a){"use strict";var n=a(279);a.n(n).a},326:function(t,e,a){"use strict";var n=a(280);a.n(n).a},332:function(t,e,a){"use strict";a.r(e);var n=a(288),r=a(242),s=a(240),o={mixins:[s.a],components:{NavLink:n.a,ModuleTransition:r.a},computed:{actionLink:function(){return{link:this.$frontmatter.actionLink,text:this.$frontmatter.actionText}},heroImageStyle:function(){return this.$frontmatter.heroImageStyle||{maxHeight:"200px",margin:"6rem auto 1.5rem"}}}},i=(a(321),a(3)),c=Object(i.a)(o,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"home"},[a("div",{staticClass:"hero"},[a("ModuleTransition",[t.recoShowModule&&t.$frontmatter.heroImage?a("img",{style:t.heroImageStyle||{},attrs:{src:t.$withBase(t.$frontmatter.heroImage),alt:"hero"}}):t._e()]),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.04"}},[t.recoShowModule&&null!==t.$frontmatter.heroText?a("h1",[t._v(t._s(t.$frontmatter.heroText||t.$title||"vuePress-theme-reco"))]):t._e()]),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.08"}},[t.recoShowModule&&null!==t.$frontmatter.tagline?a("p",{staticClass:"description"},[t._v("\n "+t._s(t.$frontmatter.tagline||t.$description||"Welcome to your vuePress-theme-reco site")+"\n ")]):t._e()]),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.16"}},[t.recoShowModule&&!0===t.$themeConfig.huawei?a("p",{staticClass:"huawei"},[a("i",{staticClass:"iconfont reco-huawei",staticStyle:{color:"#fc2d38"}}),t._v("\n    华为,为中华而为之!\n ")]):t._e()]),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.24"}},[t.recoShowModule&&t.$frontmatter.actionText&&t.$frontmatter.actionLink?a("p",{staticClass:"action"},[a("NavLink",{staticClass:"action-button",attrs:{item:t.actionLink}})],1):t._e()])],1),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.32"}},[t.recoShowModule&&t.$frontmatter.features&&t.$frontmatter.features.length?a("div",{staticClass:"features"},t._l(t.$frontmatter.features,(function(e,n){return a("div",{key:n,staticClass:"feature"},[a("h2",[t._v(t._s(e.title))]),t._v(" "),a("p",[t._v(t._s(e.details))])])})),0):t._e()]),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.4"}},[a("Content",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule,expression:"recoShowModule"}],staticClass:"home-center",attrs:{custom:""}})],1)],1)}),[],!1,null,null,null).exports,l=(a(18),a(32),a(57)),u=a(257),h=(a(34),a(291)),f=a.n(h),d=a(241),p={data:function(){return{popupWindowStyle:{}}},computed:{dataAddColor:function(){var t=this.$themeConfig.friendLink;return t&&t.length>0?t=t.map((function(t){return Object(l.a)({},t,{color:Object(d.a)()})})):[]}},methods:{getMd5:function(t){return f()(t)},showDetail:function(t){var e=this,a=t.target,n=a.querySelector(".popup-window-wrapper"),r=a.querySelector(".popup-window");n.style.display="block";var s=a.clientWidth,o=r.clientWidth,i=r.clientHeight;this.popupWindowStyle={left:(s-o)/2+"px",top:-i+"px"},this.$nextTick((function(){e._adjustPosition(a.querySelector(".popup-window"))}))},hideDetail:function(t){t.target.querySelector(".popup-window-wrapper").style.display="none"},getImgUrl:function(t){var e=t.logo,a=t.email;return e&&/^http/.test(e)?e:e&&!/^http/.test(e)?this.$withBase(e):"//1.gravatar.com/avatar/".concat(this.getMd5(a||""),"?s=50&amp;d=mm&amp;r=x")},_adjustPosition:function(t){var e=document.body.offsetWidth,a=t.getBoundingClientRect(),n=e-(a.x+a.width);if(n<0){var r=t.offsetLeft;this.popupWindowStyle=Object(l.a)({},this.popupWindowStyle,{left:r+n+"px"})}}}},g=(a(323),Object(i.a)(p,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"friend-link-wrapper"},t._l(t.dataAddColor,(function(e,n){return a("div",{key:n,staticClass:"friend-link-item",attrs:{target:"_blank"},on:{mouseenter:function(e){return t.showDetail(e)},mouseleave:function(e){return t.hideDetail(e)}}},[a("span",{staticClass:"list-style",style:{backgroundColor:e.color}}),t._v("\n "+t._s(e.title)+"\n "),a("transition",{attrs:{name:"fade"}},[a("div",{staticClass:"popup-window-wrapper"},[a("div",{ref:"popupWindow",refInFor:!0,staticClass:"popup-window",style:t.popupWindowStyle},[a("div",{staticClass:"logo"},[a("img",{attrs:{src:t.getImgUrl(e)}})]),t._v(" "),a("div",{staticClass:"info"},[a("div",{staticClass:"title"},[a("h4",[t._v(t._s(e.title))]),t._v(" "),a("a",{staticClass:"btn-go",style:{backgroundColor:e.color},attrs:{href:e.link,target:"_blank"}},[t._v("GO")])]),t._v(" "),e.desc?a("p",[t._v(t._s(e.desc))]):t._e()])])])])],1)})),0)}),[],!1,null,"4de4ba18",null).exports),m=a(254),v=a(250),_=a(295),C={mixins:[v.a,s.a],components:{NoteAbstract:m.a,TagList:u.a,FriendLink:g,ModuleTransition:r.a,PersonalInfo:_.a},data:function(){return{recoShow:!1,currentPage:1,tags:[]}},computed:{actionLink:function(){var t=this.$frontmatter;return{link:t.actionLink,text:t.actionText}},heroImageStyle:function(){return this.$frontmatter.heroImageStyle||{maxHeight:"200px",margin:"6rem auto 1.5rem"}},bgImageStyle:function(){var t={height:"350px",textAlign:"center",overflow:"hidden"},e=this.$frontmatter.bgImageStyle;return e?Object(l.a)({},t,{},e):t},heroHeight:function(){return document.querySelector(".hero").clientHeight}},mounted:function(){this.recoShow=!0,this._setPage(this._getStoragePage())},methods:{getCurrentPage:function(t){var e=this;this._setPage(t),setTimeout((function(){window.scrollTo(0,e.heroHeight)}),100)},getPages:function(){var t=this.$site.pages;t=t.filter((function(t){var e=t.frontmatter,a=e.home,n=e.date;return!(1==a||void 0===n)})),this.pages=0==t.length?[]:t},getPagesByTags:function(t){this.$router.push({path:t.path})},_setPage:function(t){this.currentPage=t,this.$page.currentPage=t,this._setStoragePage(t)},getOneColor:d.a}},$=(a(324),Object(i.a)(C,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"home-blog"},[n("div",{staticClass:"hero",style:Object.assign({},t.bgImageStyle)},[n("div",{staticClass:"mask",style:{background:"url("+(t.$frontmatter.bgImage?t.$withBase(t.$frontmatter.bgImage):a(322))+") center/cover no-repeat"}}),t._v(" "),n("ModuleTransition",[t.recoShowModule&&t.$frontmatter.heroImage?n("img",{style:t.heroImageStyle||{},attrs:{src:t.$withBase(t.$frontmatter.heroImage),alt:"hero"}}):t._e()]),t._v(" "),n("ModuleTransition",{attrs:{delay:"0.04"}},[t.recoShowModule&&null!==t.$frontmatter.heroText?n("h1",[t._v("\n "+t._s(t.$frontmatter.heroText||t.$title||"vuePress-theme-reco")+"\n ")]):t._e()]),t._v(" "),n("ModuleTransition",{attrs:{delay:"0.08"}},[t.recoShowModule&&null!==t.$frontmatter.tagline?n("p",{staticClass:"description"},[t._v("\n "+t._s(t.$frontmatter.tagline||t.$description||"Welcome to your vuePress-theme-reco site")+"\n ")]):t._e()]),t._v(" "),n("ModuleTransition",{attrs:{delay:"0.16"}},[t.recoShowModule&&!0===t.$themeConfig.huawei?n("p",{staticClass:"huawei"},[n("i",{staticClass:"iconfont reco-huawei",staticStyle:{color:"#fc2d38"}}),t._v("   华为,为中华而为之!\n ")]):t._e()])],1),t._v(" "),n("ModuleTransition",{attrs:{delay:"0.24"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule,expression:"recoShowModule"}],staticClass:"home-blog-wrapper"},[n("div",{staticClass:"blog-list"},[n("note-abstract",{attrs:{data:t.$recoPosts,currentPage:t.currentPage}}),t._v(" "),n("pagation",{staticClass:"pagation",attrs:{total:t.$recoPosts.length,currentPage:t.currentPage},on:{getCurrentPage:t.getCurrentPage}})],1),t._v(" "),n("div",{staticClass:"info-wrapper"},[n("PersonalInfo"),t._v(" "),n("h4",[n("i",{staticClass:"iconfont reco-category"}),t._v(" 分类")]),t._v(" "),n("ul",{staticClass:"category-wrapper"},t._l(this.$categories.list,(function(e,a){return n("li",{key:a,staticClass:"category-item"},[n("router-link",{attrs:{to:e.path}},[n("span",{staticClass:"category-name"},[t._v(t._s(e.name))]),t._v(" "),n("span",{staticClass:"post-num",style:{backgroundColor:t.getOneColor()}},[t._v(t._s(e.pages.length))])])],1)})),0),t._v(" "),n("hr"),t._v(" "),0!==t.$tags.list.length?n("h4",[n("i",{staticClass:"iconfont reco-tag"}),t._v(" 标签")]):t._e(),t._v(" "),n("TagList",{on:{getCurrentTag:t.getPagesByTags}}),t._v(" "),t.$themeConfig.friendLink&&0!==t.$themeConfig.friendLink.length?n("h4",[n("i",{staticClass:"iconfont reco-friend"}),t._v(" 友链")]):t._e(),t._v(" "),n("FriendLink")],1)])]),t._v(" "),n("ModuleTransition",{attrs:{delay:"0.36"}},[n("Content",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule,expression:"recoShowModule"}],staticClass:"home-center",attrs:{custom:""}})],1)],1)}),[],!1,null,null,null).exports),w=(a(21),a(25),a(243)),b=a(45);function y(t,e,a){var n=[];!function t(e,a){for(var n=0,r=e.length;n<r;n++)"group"===e[n].type?t(e[n].children||[],a):a.push(e[n])}(e,n);for(var r=0;r<n.length;r++){var s=n[r];if("page"===s.type&&s.path===decodeURIComponent(t.path))return n[r+a]}}var k={mixins:[s.a],components:{PageInfo:w.a,ModuleTransition:r.a},props:["sidebarItems"],data:function(){return{isHasKey:!0}},computed:{showAccessNumber:function(){return"valine"===this.$themeConfig.commentsSolution},lastUpdated:function(){return this.$page.lastUpdated},lastUpdatedText:function(){return"string"==typeof this.$themeLocaleConfig.lastUpdated?this.$themeLocaleConfig.lastUpdated:"string"==typeof this.$themeConfig.lastUpdated?this.$themeConfig.lastUpdated:"Last Updated"},prev:function(){var t,e,a=this.$frontmatter.prev;return!1===a?void 0:a?Object(b.m)(this.$site.pages,a,this.$route.path):(t=this.$page,e=this.sidebarItems,y(t,e,-1))},next:function(){var t,e,a=this.$frontmatter.next;return!1===a?void 0:a?Object(b.m)(this.$site.pages,a,this.$route.path):(t=this.$page,e=this.sidebarItems,y(t,e,1))},editLink:function(){if(!1===this.$frontmatter.editLink)return!1;var t=this.$themeConfig,e=t.repo,a=t.editLinks,n=t.docsDir,r=void 0===n?"":n,s=t.docsBranch,o=void 0===s?"master":s,i=t.docsRepo,c=void 0===i?e:i;return c&&a&&this.$page.relativePath?this.createEditLink(e,c,r,o,this.$page.relativePath):""},editLinkText:function(){return this.$themeLocaleConfig.editLinkText||this.$themeConfig.editLinkText||"Edit this page"}},methods:{createEditLink:function(t,e,a,n,r){return/bitbucket.org/.test(t)?(b.k.test(e)?e:t).replace(b.b,"")+"/src"+"/".concat(n,"/")+(a?a.replace(b.b,"")+"/":"")+r+"?mode=edit&spa=0&at=".concat(n,"&fileviewer=file-view-default"):(b.k.test(e)?e:"https://github.com/".concat(e)).replace(b.b,"")+"/edit"+"/".concat(n,"/")+(a?a.replace(b.b,"")+"/":"")+r}}},S=(a(325),Object(i.a)(k,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("main",{staticClass:"page"},[a("ModuleTransition",[a("div",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule&&t.$page.title,expression:"recoShowModule && $page.title"}],staticClass:"page-title"},[a("h1",[t._v(t._s(t.$page.title))]),t._v(" "),a("hr"),t._v(" "),a("PageInfo",{attrs:{pageInfo:t.$page,showAccessNumber:t.showAccessNumber}})],1)]),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.08"}},[a("Content",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule,expression:"recoShowModule"}],staticClass:"theme-reco-content"})],1),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.16"}},[a("footer",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule,expression:"recoShowModule"}],staticClass:"page-edit"},[t.editLink?a("div",{staticClass:"edit-link"},[a("a",{attrs:{href:t.editLink,target:"_blank",rel:"noopener noreferrer"}},[t._v(t._s(t.editLinkText))]),t._v(" "),a("OutboundLink")],1):t._e(),t._v(" "),t.lastUpdated?a("div",{staticClass:"last-updated"},[a("span",{staticClass:"prefix"},[t._v(t._s(t.lastUpdatedText)+": ")]),t._v(" "),a("span",{staticClass:"time"},[t._v(t._s(t.lastUpdated))])]):t._e()])]),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.24"}},[t.recoShowModule&&(t.prev||t.next)?a("div",{staticClass:"page-nav"},[a("p",{staticClass:"inner"},[t.prev?a("span",{staticClass:"prev"},[t._v("\n ←\n "),t.prev?a("router-link",{staticClass:"prev",attrs:{to:t.prev.path}},[t._v("\n "+t._s(t.prev.title||t.prev.path)+"\n ")]):t._e()],1):t._e(),t._v(" "),t.next?a("span",{staticClass:"next"},[t.next?a("router-link",{attrs:{to:t.next.path}},[t._v("\n "+t._s(t.next.title||t.next.path)+"\n ")]):t._e(),t._v("\n →\n ")],1):t._e()])]):t._e()])],1)}),[],!1,null,null,null).exports),x=(a(67),{computed:{year:function(){return(new Date).getFullYear()}}}),T=(a(326),Object(i.a)(x,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"footer-wrapper"},[t._m(0),t._v(" "),t.$themeConfig.record?a("span",[a("i",{staticClass:"iconfont reco-beian"}),t._v(" "),a("a",{attrs:{href:t.$themeConfig.recordLink||"#"}},[t._v(t._s(t.$themeConfig.record))])]):t._e(),t._v(" "),a("span",[a("i",{staticClass:"iconfont reco-copyright"}),t._v(" "),a("a",[t.$themeConfig.author||t.$site.title?a("span",[t._v(t._s(t.$themeConfig.author||t.$site.title))]):t._e(),t._v("\n   \n "),t.$themeConfig.startYear?a("span",[t._v(t._s(t.$themeConfig.startYear)+" - ")]):t._e(),t._v("\n "+t._s(t.year)+"\n ")])]),t._v(" "),a("span",{directives:[{name:"show",rawName:"v-show",value:void 0!==t.$themeConfig.valineConfig,expression:"$themeConfig.valineConfig !== undefined"}]},[a("i",{staticClass:"iconfont reco-eye"}),t._v(" "),a("AccessNumber",{attrs:{idVal:"/"}})],1),t._v(" "),t.$themeConfig.cyberSecurityRecord?a("p",{staticClass:"cyber-security"},[a("img",{attrs:{src:"https://img.alicdn.com/tfs/TB1..50QpXXXXX7XpXXXXXXXXXX-40-40.png",alt:""}}),t._v(" "),a("a",{attrs:{href:t.$themeConfig.cyberSecurityLink||"#"}},[t._v(t._s(t.$themeConfig.cyberSecurityRecord))])]):t._e()])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("span",[e("i",{staticClass:"iconfont reco-theme"}),this._v(" "),e("a",{attrs:{target:"blank",href:"https://vuepress-theme-reco.recoluan.com"}},[this._v("VuePress-theme-reco")])])}],!1,null,"66bf7bce",null).exports),P={components:{HomeBlog:$,Home:c,Page:S,Common:a(256).a,Footer:T},computed:{sidebarItems:function(){return Object(b.n)(this.$page,this.$page.regularPath,this.$site,this.$localePath)},homeCom:function(){var t=this.$themeConfig.type;return void 0!==t?"blog"==t?"HomeBlog":t:"Home"}}},I=(a(281),a(282),Object(i.a)(P,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",[e("Common",[this.$frontmatter.home?e(this.homeCom,{tag:"component"}):e("Page",{attrs:{"sidebar-items":this.sidebarItems}}),this._v(" "),this.$frontmatter.home?e("Footer",{staticClass:"footer"}):this._e()],1)],1)}),[],!1,null,null,null));e.default=I.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{235:function(t,e,a){},236:function(t,e,a){},237:function(t,e,a){},238:function(t,e,a){},239:function(t,e,a){},241:function(t,e,a){"use strict";function n(){var t=["#e15b64","#f47e60","#f8b26a","#abbd81","#849b87","#e15b64","#f47e60","#f8b26a","#f26d6d","#67cc86","#fb9b5f","#3498db"];return t[Math.floor(Math.random()*t.length)]}a.d(e,"a",(function(){return n}))},243:function(t,e,a){"use strict";a(245),a(20),a(145),a(21),a(25);var n=a(45),r={props:{pageInfo:{type:Object,default:function(){return{}}},currentTag:{type:String,default:""},showAccessNumber:{type:Boolean,default:!1}},data:function(){return{numStyle:{fontSize:".9rem",fontWeight:"normal",color:"#999"}}},filters:{formatDateValue:function(t){if(!t)return"";t=t.replace("T"," ").slice(0,t.lastIndexOf("."));var e=Number(t.substr(11,2)),a=Number(t.substr(14,2)),r=Number(t.substr(17,2));return e>0||a>0||r>0?Object(n.d)(t):Object(n.d)(t,"yyyy-MM-dd")}},methods:{goTags:function(t){this.$router.push({path:"/tags/".concat(t,"/")})}}},s=(a(247),a(3)),o=Object(s.a)(r,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[t.pageInfo.frontmatter.author||t.$themeConfig.author||t.$site.title?a("i",{staticClass:"iconfont reco-account"},[a("span",[t._v(t._s(t.pageInfo.frontmatter.author||t.$themeConfig.author||t.$site.title))])]):t._e(),t._v(" "),t.pageInfo.frontmatter.date?a("i",{staticClass:"iconfont reco-date"},[a("span",[t._v(t._s(t._f("formatDateValue")(t.pageInfo.frontmatter.date)))])]):t._e(),t._v(" "),!0===t.showAccessNumber?a("i",{staticClass:"iconfont reco-eye"},[a("AccessNumber",{attrs:{idVal:t.pageInfo.path,numStyle:t.numStyle}})],1):t._e(),t._v(" "),t.pageInfo.frontmatter.tags?a("i",{staticClass:"iconfont reco-tag tags"},t._l(t.pageInfo.frontmatter.tags,(function(e,n){return a("span",{key:n,staticClass:"tag-item",class:{active:t.currentTag==e},on:{click:function(a){return t.goTags(e)}}},[t._v("\n "+t._s(e)+"\n ")])})),0):t._e()])}),[],!1,null,"484a899e",null);e.a=o.exports},244:function(t,e,a){"use strict";var n=a(235);a.n(n).a},245:function(t,e,a){var n=a(0),r=a(246);n({target:"Array",proto:!0,forced:r!==[].lastIndexOf},{lastIndexOf:r})},246:function(t,e,a){"use strict";var n=a(17),r=a(33),s=a(11),o=a(26),c=a(19),i=Math.min,u=[].lastIndexOf,g=!!u&&1/[1].lastIndexOf(1,-0)<0,f=o("lastIndexOf"),l=c("indexOf",{ACCESSORS:!0,1:0}),p=g||!f||!l;t.exports=p?function(t){if(g)return u.apply(this,arguments)||0;var e=n(this),a=s(e.length),o=a-1;for(arguments.length>1&&(o=i(o,r(arguments[1]))),o<0&&(o=a+o);o>=0;o--)if(o in e&&e[o]===t)return o||0;return-1}:u},247:function(t,e,a){"use strict";var n=a(236);a.n(n).a},248:function(t,e,a){"use strict";var n=a(237);a.n(n).a},249:function(t,e,a){"use strict";var n=a(238);a.n(n).a},250:function(t,e,a){"use strict";a(143);e.a={methods:{_getStoragePage:function(){var t=window.location.pathname,e=JSON.parse(sessionStorage.getItem("currentPage"));return null===e||t!==e.path?(sessionStorage.setItem("currentPage",{page:1,path:""}),1):parseInt(e.page)},_setStoragePage:function(t){var e=window.location.pathname;sessionStorage.setItem("currentPage",JSON.stringify({page:t,path:e}))}}}},251:function(t,e,a){},254:function(t,e,a){"use strict";a(20);var n={components:{PageInfo:a(243).a},props:["item","currentPage","currentTag"]},r=(a(248),a(3)),s={components:{NoteAbstractItem:Object(r.a)(n,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"abstract-item"},[t.item.frontmatter.sticky?a("i",{staticClass:"iconfont reco-sticky"}):t._e(),t._v(" "),a("div",{staticClass:"title"},[t.item.frontmatter.keys?a("i",{staticClass:"iconfont reco-lock"}):t._e(),t._v(" "),a("router-link",{attrs:{to:t.item.path}},[t._v(t._s(t.item.title))])],1),t._v(" "),a("div",{staticClass:"abstract",domProps:{innerHTML:t._s(t.item.excerpt)}}),t._v(" "),a("hr",{staticClass:"hr"}),t._v(" "),a("PageInfo",{attrs:{pageInfo:t.item,currentTag:t.currentTag}})],1)}),[],!1,null,"28f76ce9",null).exports},props:["data","currentPage","currentTag"],computed:{currentPageData:function(){var t=10*this.currentPage-10,e=10*this.currentPage;return this.data.slice(t,e)}}},o=(a(249),Object(r.a)(s,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"abstract-wrapper"},t._l(t.currentPageData,(function(e){return a("NoteAbstractItem",{key:e.path,attrs:{item:e,currentPage:t.currentPage,currentTag:t.currentTag}})})),1)}),[],!1,null,"b014bc36",null));e.a=o.exports},255:function(t,e,a){"use strict";var n=a(239);a.n(n).a},257:function(t,e,a){"use strict";a(142);var n=a(24),r=a(241),s={props:{currentTag:{type:String,default:""}},computed:{tags:function(){return[{name:"全部",path:"/tag/"}].concat(Object(n.a)(this.$tags.list))}},methods:{tagClick:function(t){this.$emit("getCurrentTag",t)},getOneColor:r.a}},o=(a(255),a(3)),c=Object(o.a)(s,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"tags"},t._l(t.tags,(function(e,n){return a("span",{key:n,class:{active:e.name==t.currentTag},style:{backgroundColor:t.getOneColor()},on:{click:function(a){return t.tagClick(e)}}},[t._v(t._s(e.name))])})),0)}),[],!1,null,"36b9f66a",null);e.a=c.exports},274:function(t,e,a){"use strict";var n=a(251);a.n(n).a},283:function(t,e,a){},327:function(t,e,a){"use strict";var n=a(283);a.n(n).a},335:function(t,e,a){"use strict";a.r(e);a(32);var n=a(256),r=a(254),s=a(257),o=a(250),c=a(242),i=a(43),u=a(240),g={mixins:[o.a,u.a],components:{Common:n.a,NoteAbstract:r.a,TagList:s.a,ModuleTransition:c.a},data:function(){return{currentPage:1,currentTag:"全部"}},computed:{posts:function(){var t=this.$currentTags.pages;return t=Object(i.a)(t),Object(i.c)(t),t}},mounted:function(){this._setPage(this._getStoragePage())},methods:{getCurrentTag:function(t){this.$emit("currentTag",t)},tagClick:function(t){this.$router.push({path:t.path})},getCurrentPage:function(t){this._setPage(t),setTimeout((function(){window.scrollTo(0,0)}),100)},_setPage:function(t){this.currentPage=t,this.$page.currentPage=t,this._setStoragePage(t)}},watch:{$route:function(){this._setPage(this._getStoragePage())}}},f=(a(244),a(274),a(327),a(3)),l=Object(f.a)(g,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"tag-wrapper"},[a("Common",{attrs:{sidebar:!1,isComment:!1}},[a("ModuleTransition",[a("TagList",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule,expression:"recoShowModule"}],staticClass:"tags",attrs:{currentTag:t.$currentTags.key},on:{getCurrentTag:t.tagClick}})],1),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.08"}},[a("note-abstract",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule,expression:"recoShowModule"}],staticClass:"list",attrs:{data:t.posts,currentPage:t.currentPage},on:{currentTag:t.$currentTags.key}})],1),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.16"}},[a("pagation",{staticClass:"pagation",attrs:{total:t.posts.length,currentPage:t.currentPage},on:{getCurrentPage:t.getCurrentPage}})],1)],1)],1)}),[],!1,null,"c2f129e2",null);e.default=l.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{236:function(t,e,a){},237:function(t,e,a){},238:function(t,e,a){},239:function(t,e,a){},241:function(t,e,a){"use strict";function n(){var t=["#e15b64","#f47e60","#f8b26a","#abbd81","#849b87","#e15b64","#f47e60","#f8b26a","#f26d6d","#67cc86","#fb9b5f","#3498db"];return t[Math.floor(Math.random()*t.length)]}a.d(e,"a",(function(){return n}))},243:function(t,e,a){"use strict";a(245),a(20),a(145),a(21),a(25);var n=a(45),r={props:{pageInfo:{type:Object,default:function(){return{}}},currentTag:{type:String,default:""},showAccessNumber:{type:Boolean,default:!1}},data:function(){return{numStyle:{fontSize:".9rem",fontWeight:"normal",color:"#999"}}},filters:{formatDateValue:function(t){if(!t)return"";t=t.replace("T"," ").slice(0,t.lastIndexOf("."));var e=Number(t.substr(11,2)),a=Number(t.substr(14,2)),r=Number(t.substr(17,2));return e>0||a>0||r>0?Object(n.d)(t):Object(n.d)(t,"yyyy-MM-dd")}},methods:{goTags:function(t){this.$router.push({path:"/tags/".concat(t,"/")})}}},s=(a(247),a(3)),o=Object(s.a)(r,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[t.pageInfo.frontmatter.author||t.$themeConfig.author||t.$site.title?a("i",{staticClass:"iconfont reco-account"},[a("span",[t._v(t._s(t.pageInfo.frontmatter.author||t.$themeConfig.author||t.$site.title))])]):t._e(),t._v(" "),t.pageInfo.frontmatter.date?a("i",{staticClass:"iconfont reco-date"},[a("span",[t._v(t._s(t._f("formatDateValue")(t.pageInfo.frontmatter.date)))])]):t._e(),t._v(" "),!0===t.showAccessNumber?a("i",{staticClass:"iconfont reco-eye"},[a("AccessNumber",{attrs:{idVal:t.pageInfo.path,numStyle:t.numStyle}})],1):t._e(),t._v(" "),t.pageInfo.frontmatter.tags?a("i",{staticClass:"iconfont reco-tag tags"},t._l(t.pageInfo.frontmatter.tags,(function(e,n){return a("span",{key:n,staticClass:"tag-item",class:{active:t.currentTag==e},on:{click:function(a){return t.goTags(e)}}},[t._v("\n "+t._s(e)+"\n ")])})),0):t._e()])}),[],!1,null,"484a899e",null);e.a=o.exports},245:function(t,e,a){var n=a(0),r=a(246);n({target:"Array",proto:!0,forced:r!==[].lastIndexOf},{lastIndexOf:r})},246:function(t,e,a){"use strict";var n=a(17),r=a(33),s=a(11),o=a(26),c=a(19),i=Math.min,u=[].lastIndexOf,g=!!u&&1/[1].lastIndexOf(1,-0)<0,l=o("lastIndexOf"),f=c("indexOf",{ACCESSORS:!0,1:0}),m=g||!l||!f;t.exports=m?function(t){if(g)return u.apply(this,arguments)||0;var e=n(this),a=s(e.length),o=a-1;for(arguments.length>1&&(o=i(o,r(arguments[1]))),o<0&&(o=a+o);o>=0;o--)if(o in e&&e[o]===t)return o||0;return-1}:u},247:function(t,e,a){"use strict";var n=a(236);a.n(n).a},248:function(t,e,a){"use strict";var n=a(237);a.n(n).a},249:function(t,e,a){"use strict";var n=a(238);a.n(n).a},250:function(t,e,a){"use strict";a(143);e.a={methods:{_getStoragePage:function(){var t=window.location.pathname,e=JSON.parse(sessionStorage.getItem("currentPage"));return null===e||t!==e.path?(sessionStorage.setItem("currentPage",{page:1,path:""}),1):parseInt(e.page)},_setStoragePage:function(t){var e=window.location.pathname;sessionStorage.setItem("currentPage",JSON.stringify({page:t,path:e}))}}}},252:function(t,e,a){},253:function(t,e,a){},254:function(t,e,a){"use strict";a(20);var n={components:{PageInfo:a(243).a},props:["item","currentPage","currentTag"]},r=(a(248),a(3)),s={components:{NoteAbstractItem:Object(r.a)(n,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"abstract-item"},[t.item.frontmatter.sticky?a("i",{staticClass:"iconfont reco-sticky"}):t._e(),t._v(" "),a("div",{staticClass:"title"},[t.item.frontmatter.keys?a("i",{staticClass:"iconfont reco-lock"}):t._e(),t._v(" "),a("router-link",{attrs:{to:t.item.path}},[t._v(t._s(t.item.title))])],1),t._v(" "),a("div",{staticClass:"abstract",domProps:{innerHTML:t._s(t.item.excerpt)}}),t._v(" "),a("hr",{staticClass:"hr"}),t._v(" "),a("PageInfo",{attrs:{pageInfo:t.item,currentTag:t.currentTag}})],1)}),[],!1,null,"28f76ce9",null).exports},props:["data","currentPage","currentTag"],computed:{currentPageData:function(){var t=10*this.currentPage-10,e=10*this.currentPage;return this.data.slice(t,e)}}},o=(a(249),Object(r.a)(s,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"abstract-wrapper"},t._l(t.currentPageData,(function(e){return a("NoteAbstractItem",{key:e.path,attrs:{item:e,currentPage:t.currentPage,currentTag:t.currentTag}})})),1)}),[],!1,null,"b014bc36",null));e.a=o.exports},255:function(t,e,a){"use strict";var n=a(239);a.n(n).a},257:function(t,e,a){"use strict";a(142);var n=a(24),r=a(241),s={props:{currentTag:{type:String,default:""}},computed:{tags:function(){return[{name:"全部",path:"/tag/"}].concat(Object(n.a)(this.$tags.list))}},methods:{tagClick:function(t){this.$emit("getCurrentTag",t)},getOneColor:r.a}},o=(a(255),a(3)),c=Object(o.a)(s,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"tags"},t._l(t.tags,(function(e,n){return a("span",{key:n,class:{active:e.name==t.currentTag},style:{backgroundColor:t.getOneColor()},on:{click:function(a){return t.tagClick(e)}}},[t._v(t._s(e.name))])})),0)}),[],!1,null,"36b9f66a",null);e.a=c.exports},281:function(t,e,a){"use strict";var n=a(252);a.n(n).a},282:function(t,e,a){"use strict";var n=a(253);a.n(n).a},284:function(t,e,a){},328:function(t,e,a){"use strict";var n=a(284);a.n(n).a},336:function(t,e,a){"use strict";a.r(e);a(32);var n=a(256),r=a(257),s=a(254),o=a(250),c=a(242),i=a(240),u={mixins:[o.a,i.a],components:{Common:n.a,NoteAbstract:s.a,TagList:r.a,ModuleTransition:c.a},data:function(){return{tags:[],currentTag:"全部",currentPage:1,allTagName:"全部"}},created:function(){this.$tags.list.length>0&&(this.currentTag=this.$route.query.tag?this.$route.query.tag:this.currentTag)},mounted:function(){this._setPage(this._getStoragePage())},methods:{tagClick:function(t){this.$router.push({path:t.path})},getCurrentTag:function(t){this.$emit("currentTag",t)},getCurrentPage:function(t){this._setPage(t),setTimeout((function(){window.scrollTo(0,0)}),100)},_setPage:function(t){this.currentPage=t,this.$page.currentPage=t,this._setStoragePage(t)}}},g=(a(281),a(282),a(328),a(3)),l=Object(g.a)(u,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"tags-wrapper"},[a("Common",{attrs:{sidebar:!1,isComment:!1}},[a("ModuleTransition",[a("TagList",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule,expression:"recoShowModule"}],attrs:{currentTag:t.currentTag},on:{getCurrentTag:t.tagClick}})],1),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.08"}},[a("note-abstract",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule,expression:"recoShowModule"}],staticClass:"list",attrs:{data:t.$recoPosts,currentPage:t.currentPage,currentTag:t.currentTag},on:{currentTag:t.getCurrentTag}})],1),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.16"}},[a("pagation",{staticClass:"pagation",attrs:{total:t.$recoPosts.length,currentPage:t.currentPage},on:{getCurrentPage:t.getCurrentPage}})],1)],1)],1)}),[],!1,null,"2a407e7f",null);e.default=l.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{235:function(t,e,a){},236:function(t,e,a){},237:function(t,e,a){},238:function(t,e,a){},241:function(t,e,a){"use strict";function n(){var t=["#e15b64","#f47e60","#f8b26a","#abbd81","#849b87","#e15b64","#f47e60","#f8b26a","#f26d6d","#67cc86","#fb9b5f","#3498db"];return t[Math.floor(Math.random()*t.length)]}a.d(e,"a",(function(){return n}))},243:function(t,e,a){"use strict";a(245),a(20),a(145),a(21),a(25);var n=a(45),r={props:{pageInfo:{type:Object,default:function(){return{}}},currentTag:{type:String,default:""},showAccessNumber:{type:Boolean,default:!1}},data:function(){return{numStyle:{fontSize:".9rem",fontWeight:"normal",color:"#999"}}},filters:{formatDateValue:function(t){if(!t)return"";t=t.replace("T"," ").slice(0,t.lastIndexOf("."));var e=Number(t.substr(11,2)),a=Number(t.substr(14,2)),r=Number(t.substr(17,2));return e>0||a>0||r>0?Object(n.d)(t):Object(n.d)(t,"yyyy-MM-dd")}},methods:{goTags:function(t){this.$router.push({path:"/tags/".concat(t,"/")})}}},s=(a(247),a(3)),o=Object(s.a)(r,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[t.pageInfo.frontmatter.author||t.$themeConfig.author||t.$site.title?a("i",{staticClass:"iconfont reco-account"},[a("span",[t._v(t._s(t.pageInfo.frontmatter.author||t.$themeConfig.author||t.$site.title))])]):t._e(),t._v(" "),t.pageInfo.frontmatter.date?a("i",{staticClass:"iconfont reco-date"},[a("span",[t._v(t._s(t._f("formatDateValue")(t.pageInfo.frontmatter.date)))])]):t._e(),t._v(" "),!0===t.showAccessNumber?a("i",{staticClass:"iconfont reco-eye"},[a("AccessNumber",{attrs:{idVal:t.pageInfo.path,numStyle:t.numStyle}})],1):t._e(),t._v(" "),t.pageInfo.frontmatter.tags?a("i",{staticClass:"iconfont reco-tag tags"},t._l(t.pageInfo.frontmatter.tags,(function(e,n){return a("span",{key:n,staticClass:"tag-item",class:{active:t.currentTag==e},on:{click:function(a){return t.goTags(e)}}},[t._v("\n "+t._s(e)+"\n ")])})),0):t._e()])}),[],!1,null,"484a899e",null);e.a=o.exports},244:function(t,e,a){"use strict";var n=a(235);a.n(n).a},245:function(t,e,a){var n=a(0),r=a(246);n({target:"Array",proto:!0,forced:r!==[].lastIndexOf},{lastIndexOf:r})},246:function(t,e,a){"use strict";var n=a(17),r=a(33),s=a(11),o=a(26),i=a(19),c=Math.min,u=[].lastIndexOf,l=!!u&&1/[1].lastIndexOf(1,-0)<0,f=o("lastIndexOf"),g=i("indexOf",{ACCESSORS:!0,1:0}),p=l||!f||!g;t.exports=p?function(t){if(l)return u.apply(this,arguments)||0;var e=n(this),a=s(e.length),o=a-1;for(arguments.length>1&&(o=c(o,r(arguments[1]))),o<0&&(o=a+o);o>=0;o--)if(o in e&&e[o]===t)return o||0;return-1}:u},247:function(t,e,a){"use strict";var n=a(236);a.n(n).a},248:function(t,e,a){"use strict";var n=a(237);a.n(n).a},249:function(t,e,a){"use strict";var n=a(238);a.n(n).a},250:function(t,e,a){"use strict";a(143);e.a={methods:{_getStoragePage:function(){var t=window.location.pathname,e=JSON.parse(sessionStorage.getItem("currentPage"));return null===e||t!==e.path?(sessionStorage.setItem("currentPage",{page:1,path:""}),1):parseInt(e.page)},_setStoragePage:function(t){var e=window.location.pathname;sessionStorage.setItem("currentPage",JSON.stringify({page:t,path:e}))}}}},251:function(t,e,a){},254:function(t,e,a){"use strict";a(20);var n={components:{PageInfo:a(243).a},props:["item","currentPage","currentTag"]},r=(a(248),a(3)),s={components:{NoteAbstractItem:Object(r.a)(n,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"abstract-item"},[t.item.frontmatter.sticky?a("i",{staticClass:"iconfont reco-sticky"}):t._e(),t._v(" "),a("div",{staticClass:"title"},[t.item.frontmatter.keys?a("i",{staticClass:"iconfont reco-lock"}):t._e(),t._v(" "),a("router-link",{attrs:{to:t.item.path}},[t._v(t._s(t.item.title))])],1),t._v(" "),a("div",{staticClass:"abstract",domProps:{innerHTML:t._s(t.item.excerpt)}}),t._v(" "),a("hr",{staticClass:"hr"}),t._v(" "),a("PageInfo",{attrs:{pageInfo:t.item,currentTag:t.currentTag}})],1)}),[],!1,null,"28f76ce9",null).exports},props:["data","currentPage","currentTag"],computed:{currentPageData:function(){var t=10*this.currentPage-10,e=10*this.currentPage;return this.data.slice(t,e)}}},o=(a(249),Object(r.a)(s,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"abstract-wrapper"},t._l(t.currentPageData,(function(e){return a("NoteAbstractItem",{key:e.path,attrs:{item:e,currentPage:t.currentPage,currentTag:t.currentTag}})})),1)}),[],!1,null,"b014bc36",null));e.a=o.exports},274:function(t,e,a){"use strict";var n=a(251);a.n(n).a},275:function(t,e,a){},320:function(t,e,a){"use strict";var n=a(275);a.n(n).a},334:function(t,e,a){"use strict";a.r(e);a(32);var n=a(256),r=a(254),s=a(242),o=a(250),i=a(43),c=a(241),u=a(240),l={mixins:[o.a,u.a],components:{Common:n.a,NoteAbstract:r.a,ModuleTransition:s.a},data:function(){return{currentPage:1}},computed:{posts:function(){var t=this.$currentCategories.pages;return t=Object(i.a)(t),Object(i.c)(t),t},title:function(){return this.$currentCategories.key}},mounted:function(){this._setPage(this._getStoragePage())},methods:{getCurrentTag:function(t){this.$emit("currentTag",t)},getCurrentPage:function(t){this._setPage(t),setTimeout((function(){window.scrollTo(0,0)}),100)},_setPage:function(t){this.currentPage=t,this.$page.currentPage=t,this._setStoragePage(t)},getOneColor:c.a},watch:{$route:function(){this._setPage(this._getStoragePage())}}},f=(a(244),a(274),a(320),a(3)),g=Object(f.a)(l,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"categories-wrapper"},[a("Common",{attrs:{sidebar:!1,isComment:!1}},[a("ModuleTransition",[a("ul",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule,expression:"recoShowModule"}],staticClass:"category-wrapper"},t._l(this.$categories.list,(function(e,n){return a("li",{key:n,staticClass:"category-item",class:t.title==e.name?"active":""},[a("router-link",{attrs:{to:e.path}},[a("span",{staticClass:"category-name"},[t._v(t._s(e.name))]),t._v(" "),a("span",{staticClass:"post-num",style:{backgroundColor:t.getOneColor()}},[t._v(t._s(e.pages.length))])])],1)})),0)]),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.08"}},[a("note-abstract",{directives:[{name:"show",rawName:"v-show",value:t.recoShowModule,expression:"recoShowModule"}],staticClass:"list",attrs:{data:t.posts,currentPage:t.currentPage},on:{currentTag:t.getCurrentTag}})],1),t._v(" "),a("ModuleTransition",{attrs:{delay:"0.16"}},[a("pagation",{staticClass:"pagation",attrs:{total:t.posts.length,currentPage:t.currentPage},on:{getCurrentPage:t.getCurrentPage}})],1)],1)],1)}),[],!1,null,"7d81bf34",null);e.default=g.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{235:function(e,t,n){},244:function(e,t,n){"use strict";var o=n(235);n.n(o).a},258:function(e,t,n){},296:function(e,t,n){"use strict";var o=n(258);n.n(o).a},333:function(e,t,n){"use strict";n.r(t);var o=["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],r={computed:{noFoundPageByTencent:function(){return!1!==this.$themeConfig.noFoundPageByTencent}},mounted:function(){if(this.noFoundPageByTencent){var e=document.createElement("script");e.setAttribute("homePageName","回到首页"),e.setAttribute("homePageUrl","/"),e.setAttribute("src","//qzonestyle.gtimg.cn/qzone/hybrid/app/404/search_children.js"),document.body.append(e)}},methods:{getMsg:function(){return o[Math.floor(Math.random()*o.length)]}}},s=(n(244),n(296),n(3)),i=Object(s.a)(r,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.noFoundPageByTencent?e._e():n("div",{staticClass:"theme-container"},[n("div",{staticClass:"content"},[n("h1",[e._v("404")]),e._v(" "),n("blockquote",[e._v(e._s(e.getMsg()))]),e._v(" "),n("router-link",{attrs:{to:"/"}},[e._v("Take me home.")])],1)])}),[],!1,null,null,null);t.default=i.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{235:function(e,t,a){},244:function(e,t,a){"use strict";var n=a(235);a.n(n).a},285:function(e,t,a){},329:function(e,t,a){"use strict";var n=a(285);a.n(n).a},337:function(e,t,a){"use strict";a.r(t);a(142),a(146),a(147),a(67),a(21),a(25),a(148);var n=a(256),o=a(242),r={mixins:[a(240).a],name:"TimeLine",components:{Common:n.a,ModuleTransition:o.a},filters:{dateFormat:function(e,t){e=function(e){var t=new Date(e).toJSON();return new Date(+new Date(t)+288e5).toISOString().replace(/T/g," ").replace(/\.[\d]{3}Z/,"").replace(/-/g,"/")}(e);var a=new Date(e),n=a.getMonth()+1,o=a.getDate();return"".concat(n,"-").concat(o)}},methods:{go:function(e){this.$router.push({path:e})}}},s=(a(244),a(329),a(3)),i=Object(s.a)(r,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("Common",{attrs:{sidebar:!1,isComment:!1}},[a("ul",{staticClass:"timeline-wrapper"},[a("ModuleTransition",[a("li",{directives:[{name:"show",rawName:"v-show",value:e.recoShowModule,expression:"recoShowModule"}],staticClass:"desc"},[e._v("Yesterday Once More!")])]),e._v(" "),e._l(e.$recoPostsForTimeline,(function(t,n){return a("ModuleTransition",{key:n,attrs:{delay:String(.08*(n+1))}},[a("li",{directives:[{name:"show",rawName:"v-show",value:e.recoShowModule,expression:"recoShowModule"}]},[a("h3",{staticClass:"year"},[e._v(e._s(t.year))]),e._v(" "),a("ul",{staticClass:"year-wrapper"},e._l(t.data,(function(t,n){return a("li",{key:n},[a("span",{staticClass:"date"},[e._v(e._s(e._f("dateFormat")(t.frontmatter.date)))]),e._v(" "),a("span",{staticClass:"title",on:{click:function(a){return e.go(t.path)}}},[e._v(e._s(t.title))])])})),0)])])}))],2)])],1)}),[],!1,null,"3cbc0e8d",null);t.default=i.exports}}]);
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{286:function(t,s,e){},330:function(t,s,e){"use strict";var a=e(286);e.n(a).a},338:function(t,s,e){"use strict";e.r(s);e(67),e(32);var a={data:function(){return{deg:6}},methods:{},watch:{},mounted:function(){var t=this;setInterval((function(){var s=new Date,e=5*s.getHours()*t.deg,a=s.getMinutes()*t.deg,n=s.getSeconds()*t.deg;t.$refs.hh.style.transform="rotateZ(".concat(e+a/12,"deg)"),t.$refs.mm.style.transform="rotateZ(".concat(a,"deg)"),t.$refs.ss.style.transform="rotateZ(".concat(n,"deg)")}),1e3)}},n=(e(330),e(3)),r=Object(n.a)(a,(function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"wrap",attrs:{id:"clock"}},[s("div",{staticClass:"clock"},[s("div",{ref:"hh",staticClass:"hour"}),this._v(" "),s("div",{ref:"mm",staticClass:"min"}),this._v(" "),s("div",{ref:"ss",staticClass:"sec"})])])}),[],!1,null,"730a23f4",null);s.default=r.exports}}]);
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Categories | 物联网知识库</title>
<meta name="description" content="物联网知识点分享">
<meta name="generator" content="VuePress 1.3.1">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<link rel="icon" href="/favicon.ico">
<link rel="preload" href="/assets/css/0.styles.2c51ae0d.css" as="style"><link rel="preload" href="/assets/js/app.394670a6.js" as="script"><link rel="preload" href="/assets/js/3.a4daf23b.js" as="script"><link rel="preload" href="/assets/js/1.564fda4f.js" as="script"><link rel="prefetch" href="/assets/js/10.623acd6b.js"><link rel="prefetch" href="/assets/js/11.86f4dd7b.js"><link rel="prefetch" href="/assets/js/12.55cdf3a6.js"><link rel="prefetch" href="/assets/js/13.4fdfc039.js"><link rel="prefetch" href="/assets/js/14.87e817f5.js"><link rel="prefetch" href="/assets/js/15.3478b4f4.js"><link rel="prefetch" href="/assets/js/16.0f9fce17.js"><link rel="prefetch" href="/assets/js/17.8a162a2f.js"><link rel="prefetch" href="/assets/js/18.9ab8d900.js"><link rel="prefetch" href="/assets/js/4.d089dd84.js"><link rel="prefetch" href="/assets/js/5.1adb0957.js"><link rel="prefetch" href="/assets/js/6.9e699f41.js"><link rel="prefetch" href="/assets/js/7.b3d344a0.js"><link rel="prefetch" href="/assets/js/8.6d98bd53.js"><link rel="prefetch" href="/assets/js/9.05f0eb0f.js">
<link rel="stylesheet" href="/assets/css/0.styles.2c51ae0d.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div><div class="theme-container" data-v-319dd33c><div data-v-319dd33c><div id="loader-wrapper" class="loading-wrapper" data-v-4b73742e data-v-319dd33c data-v-319dd33c><div class="loader-main" data-v-4b73742e><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div></div> <!----> <!----></div> <div class="password-shadow password-wrapper-out" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0>物联网知识库</h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div class="hide" data-v-319dd33c><header class="navbar" data-v-319dd33c><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><img src="/vuepress/panda.png" alt="物联网知识库" class="logo"> <span class="site-name">物联网知识库</span></a> <div class="links"><div class="color-picker"><a class="color-button"><i class="iconfont reco-color"></i></a> <div class="color-picker-menu" style="display:none;"><div class="mode-options"><h4 class="title">Choose mode</h4> <ul class="color-mode-options"><li class="dark">dark</li><li class="auto active">auto</li><li class="light">light</li></ul></div></div></div> <div class="search-box"><i class="iconfont reco-search"></i> <input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav></div></header> <div class="sidebar-mask" data-v-319dd33c></div> <aside class="sidebar" data-v-319dd33c><div class="personal-info-wrapper" data-v-6c8ffc9c><img src="/vuepress/panda.png" alt="author-avatar" class="personal-img" data-v-6c8ffc9c> <h3 class="name" data-v-6c8ffc9c>
Jaasdsa
</h3> <div class="num" data-v-6c8ffc9c><div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>文章</h6></div> <div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>标签</h6></div></div> <hr data-v-6c8ffc9c></div> <nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav> <ul class="sidebar-links"><li><a href="/" class="sidebar-link">Home</a></li></ul> </aside> <div class="password-shadow password-wrapper-in" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0>Categories</h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div data-v-319dd33c><main class="page"><div class="page-title" style="display:none;"><h1></h1> <hr> <div data-v-484a899e><i class="iconfont reco-account" data-v-484a899e><span data-v-484a899e>Jaasdsa</span></i> <!----> <i class="iconfont reco-eye" data-v-484a899e><span id="/categories/" data-flag-title="Your Article Title" class="leancloud-visitors" data-v-484a899e><a class="leancloud-visitors-count" style="font-size:.9rem;font-weight:normal;color:#999;"></a></span></i> <!----></div></div> <!----> <footer class="page-edit" style="display:none;"><!----> <!----></footer> <!----></main> <!----> <div style="display:none;" data-v-319dd33c data-v-319dd33c><div class="comments-wrapper" data-v-319dd33c><div class="valine-wrapper"><div id="valine"></div></div></div></div></div></div></div></div></div><div class="global-ui"><div class="back-to-ceiling" style="right:1rem;bottom:6rem;width:2.5rem;height:2.5rem;border-radius:.25rem;line-height:2.5rem;display:none;" data-v-a81d141e data-v-a81d141e><svg t="1574745035067" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5404" class="icon" data-v-a81d141e><path d="M526.60727968 10.90185116a27.675 27.675 0 0 0-29.21455937 0c-131.36607665 82.28402758-218.69155461 228.01873535-218.69155402 394.07834331a462.20625001 462.20625001 0 0 0 5.36959153 69.94390903c1.00431239 6.55289093-0.34802892 13.13561351-3.76865779 18.80351572-32.63518765 54.11355614-51.75690182 118.55860487-51.7569018 187.94566865a371.06718723 371.06718723 0 0 0 11.50484808 91.98906777c6.53300375 25.50556257 41.68394495 28.14064038 52.69160883 4.22606766 17.37162448-37.73630017 42.14135425-72.50938081 72.80769204-103.21549295 2.18761121 3.04276886 4.15646224 6.24463696 6.40373557 9.22774369a1871.4375 1871.4375 0 0 0 140.04691725 5.34970492 1866.36093723 1866.36093723 0 0 0 140.04691723-5.34970492c2.24727335-2.98310674 4.21612437-6.18497483 6.3937923-9.2178004 30.66633723 30.70611158 55.4360664 65.4791928 72.80769147 103.21549355 11.00766384 23.91457269 46.15860503 21.27949489 52.69160879-4.22606768a371.15156223 371.15156223 0 0 0 11.514792-91.99901164c0-69.36717486-19.13165746-133.82216804-51.75690182-187.92578088-3.42062944-5.66790279-4.76302748-12.26056868-3.76865837-18.80351632a462.20625001 462.20625001 0 0 0 5.36959269-69.943909c-0.00994388-166.08943902-87.32547796-311.81420293-218.6915546-394.09823051zM605.93803103 357.87693858a93.93749974 93.93749974 0 1 1-187.89594924 6.1e-7 93.93749974 93.93749974 0 0 1 187.89594924-6.1e-7z" p-id="5405" data-v-a81d141e></path><path d="M429.50777625 765.63860547C429.50777625 803.39355007 466.44236686 1000.39046097 512.00932183 1000.39046097c45.56695499 0 82.4922232-197.00623328 82.5015456-234.7518555 0-37.75494459-36.9345906-68.35043303-82.4922232-68.34111062-45.57627738-0.00932239-82.52019037 30.59548842-82.51086798 68.34111062z" p-id="5406" data-v-a81d141e></path></svg></div></div></div>
<script src="/assets/js/app.394670a6.js" defer></script><script src="/assets/js/3.a4daf23b.js" defer></script><script src="/assets/js/1.564fda4f.js" defer></script>
</body>
</html>
favicon.ico

4.19 KB

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>物联网知识库</title>
<meta name="description" content="物联网知识点分享">
<meta name="generator" content="VuePress 1.3.1">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<link rel="icon" href="/favicon.ico">
<link rel="preload" href="/assets/css/0.styles.2c51ae0d.css" as="style"><link rel="preload" href="/assets/js/app.394670a6.js" as="script"><link rel="preload" href="/assets/js/3.a4daf23b.js" as="script"><link rel="preload" href="/assets/js/1.564fda4f.js" as="script"><link rel="preload" href="/assets/js/11.86f4dd7b.js" as="script"><link rel="prefetch" href="/assets/js/10.623acd6b.js"><link rel="prefetch" href="/assets/js/12.55cdf3a6.js"><link rel="prefetch" href="/assets/js/13.4fdfc039.js"><link rel="prefetch" href="/assets/js/14.87e817f5.js"><link rel="prefetch" href="/assets/js/15.3478b4f4.js"><link rel="prefetch" href="/assets/js/16.0f9fce17.js"><link rel="prefetch" href="/assets/js/17.8a162a2f.js"><link rel="prefetch" href="/assets/js/18.9ab8d900.js"><link rel="prefetch" href="/assets/js/4.d089dd84.js"><link rel="prefetch" href="/assets/js/5.1adb0957.js"><link rel="prefetch" href="/assets/js/6.9e699f41.js"><link rel="prefetch" href="/assets/js/7.b3d344a0.js"><link rel="prefetch" href="/assets/js/8.6d98bd53.js"><link rel="prefetch" href="/assets/js/9.05f0eb0f.js">
<link rel="stylesheet" href="/assets/css/0.styles.2c51ae0d.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div><div class="theme-container no-sidebar" data-v-319dd33c><div data-v-319dd33c><div id="loader-wrapper" class="loading-wrapper" data-v-4b73742e data-v-319dd33c data-v-319dd33c><div class="loader-main" data-v-4b73742e><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div></div> <h3 class="title" data-v-4b73742e>物联网知识库</h3> <p class="description" data-v-4b73742e>物联网知识点分享</p></div> <div class="password-shadow password-wrapper-out" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0>物联网知识库</h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div class="hide" data-v-319dd33c><header class="navbar" data-v-319dd33c><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-exact-active router-link-active"><img src="/vuepress/panda.png" alt="物联网知识库" class="logo"> <span class="site-name">物联网知识库</span></a> <div class="links"><div class="color-picker"><a class="color-button"><i class="iconfont reco-color"></i></a> <div class="color-picker-menu" style="display:none;"><div class="mode-options"><h4 class="title">Choose mode</h4> <ul class="color-mode-options"><li class="dark">dark</li><li class="auto active">auto</li><li class="light">light</li></ul></div></div></div> <div class="search-box"><i class="iconfont reco-search"></i> <input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link router-link-exact-active router-link-active"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav></div></header> <div class="sidebar-mask" data-v-319dd33c></div> <aside class="sidebar" data-v-319dd33c><div class="personal-info-wrapper" data-v-6c8ffc9c><img src="/vuepress/panda.png" alt="author-avatar" class="personal-img" data-v-6c8ffc9c> <h3 class="name" data-v-6c8ffc9c>
Jaasdsa
</h3> <div class="num" data-v-6c8ffc9c><div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>文章</h6></div> <div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>标签</h6></div></div> <hr data-v-6c8ffc9c></div> <nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link router-link-exact-active router-link-active"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav> <ul class="sidebar-links"><li><a href="/" class="active sidebar-link">Home</a></li></ul> </aside> <div class="password-shadow password-wrapper-in" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0></h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div data-v-319dd33c><div class="home"><div class="hero"><!----> <!----> <!----> <!----> <!----></div> <!----> <div custom="" class="home-center content__default" style="display:none;"></div></div> <div class="footer-wrapper footer" data-v-66bf7bce><span data-v-66bf7bce><i class="iconfont reco-theme" data-v-66bf7bce></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-66bf7bce>VuePress-theme-reco</a></span> <!----> <span data-v-66bf7bce><i class="iconfont reco-copyright" data-v-66bf7bce></i> <a data-v-66bf7bce><span data-v-66bf7bce>Jaasdsa</span>
  
<span data-v-66bf7bce>2020 - </span>
2020
</a></span> <span style="display:;" data-v-66bf7bce><i class="iconfont reco-eye" data-v-66bf7bce></i> <span id="/" data-flag-title="Your Article Title" class="leancloud-visitors" data-v-66bf7bce><a class="leancloud-visitors-count"></a></span></span> <!----></div> <div style="display:none;" data-v-319dd33c data-v-319dd33c><div class="comments-wrapper" style="display:none;" data-v-319dd33c><div class="valine-wrapper"><div id="valine"></div></div></div></div></div></div></div></div></div><div class="global-ui"><div class="back-to-ceiling" style="right:1rem;bottom:6rem;width:2.5rem;height:2.5rem;border-radius:.25rem;line-height:2.5rem;display:none;" data-v-a81d141e data-v-a81d141e><svg t="1574745035067" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5404" class="icon" data-v-a81d141e><path d="M526.60727968 10.90185116a27.675 27.675 0 0 0-29.21455937 0c-131.36607665 82.28402758-218.69155461 228.01873535-218.69155402 394.07834331a462.20625001 462.20625001 0 0 0 5.36959153 69.94390903c1.00431239 6.55289093-0.34802892 13.13561351-3.76865779 18.80351572-32.63518765 54.11355614-51.75690182 118.55860487-51.7569018 187.94566865a371.06718723 371.06718723 0 0 0 11.50484808 91.98906777c6.53300375 25.50556257 41.68394495 28.14064038 52.69160883 4.22606766 17.37162448-37.73630017 42.14135425-72.50938081 72.80769204-103.21549295 2.18761121 3.04276886 4.15646224 6.24463696 6.40373557 9.22774369a1871.4375 1871.4375 0 0 0 140.04691725 5.34970492 1866.36093723 1866.36093723 0 0 0 140.04691723-5.34970492c2.24727335-2.98310674 4.21612437-6.18497483 6.3937923-9.2178004 30.66633723 30.70611158 55.4360664 65.4791928 72.80769147 103.21549355 11.00766384 23.91457269 46.15860503 21.27949489 52.69160879-4.22606768a371.15156223 371.15156223 0 0 0 11.514792-91.99901164c0-69.36717486-19.13165746-133.82216804-51.75690182-187.92578088-3.42062944-5.66790279-4.76302748-12.26056868-3.76865837-18.80351632a462.20625001 462.20625001 0 0 0 5.36959269-69.943909c-0.00994388-166.08943902-87.32547796-311.81420293-218.6915546-394.09823051zM605.93803103 357.87693858a93.93749974 93.93749974 0 1 1-187.89594924 6.1e-7 93.93749974 93.93749974 0 0 1 187.89594924-6.1e-7z" p-id="5405" data-v-a81d141e></path><path d="M429.50777625 765.63860547C429.50777625 803.39355007 466.44236686 1000.39046097 512.00932183 1000.39046097c45.56695499 0 82.4922232-197.00623328 82.5015456-234.7518555 0-37.75494459-36.9345906-68.35043303-82.4922232-68.34111062-45.57627738-0.00932239-82.52019037 30.59548842-82.51086798 68.34111062z" p-id="5406" data-v-a81d141e></path></svg></div></div></div>
<script src="/assets/js/app.394670a6.js" defer></script><script src="/assets/js/3.a4daf23b.js" defer></script><script src="/assets/js/1.564fda4f.js" defer></script><script src="/assets/js/11.86f4dd7b.js" defer></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Tags | 物联网知识库</title>
<meta name="description" content="物联网知识点分享">
<meta name="generator" content="VuePress 1.3.1">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<link rel="icon" href="/favicon.ico">
<link rel="preload" href="/assets/css/0.styles.2c51ae0d.css" as="style"><link rel="preload" href="/assets/js/app.394670a6.js" as="script"><link rel="preload" href="/assets/js/5.1adb0957.js" as="script"><link rel="preload" href="/assets/js/1.564fda4f.js" as="script"><link rel="prefetch" href="/assets/js/10.623acd6b.js"><link rel="prefetch" href="/assets/js/11.86f4dd7b.js"><link rel="prefetch" href="/assets/js/12.55cdf3a6.js"><link rel="prefetch" href="/assets/js/13.4fdfc039.js"><link rel="prefetch" href="/assets/js/14.87e817f5.js"><link rel="prefetch" href="/assets/js/15.3478b4f4.js"><link rel="prefetch" href="/assets/js/16.0f9fce17.js"><link rel="prefetch" href="/assets/js/17.8a162a2f.js"><link rel="prefetch" href="/assets/js/18.9ab8d900.js"><link rel="prefetch" href="/assets/js/3.a4daf23b.js"><link rel="prefetch" href="/assets/js/4.d089dd84.js"><link rel="prefetch" href="/assets/js/6.9e699f41.js"><link rel="prefetch" href="/assets/js/7.b3d344a0.js"><link rel="prefetch" href="/assets/js/8.6d98bd53.js"><link rel="prefetch" href="/assets/js/9.05f0eb0f.js">
<link rel="stylesheet" href="/assets/css/0.styles.2c51ae0d.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="tags-wrapper" data-v-2a407e7f><div class="theme-container no-sidebar" data-v-319dd33c data-v-2a407e7f><div data-v-319dd33c><div id="loader-wrapper" class="loading-wrapper" data-v-4b73742e data-v-319dd33c data-v-319dd33c><div class="loader-main" data-v-4b73742e><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div></div> <!----> <!----></div> <div class="password-shadow password-wrapper-out" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0>物联网知识库</h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div class="hide" data-v-319dd33c><header class="navbar" data-v-319dd33c><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><img src="/vuepress/panda.png" alt="物联网知识库" class="logo"> <span class="site-name">物联网知识库</span></a> <div class="links"><div class="color-picker"><a class="color-button"><i class="iconfont reco-color"></i></a> <div class="color-picker-menu" style="display:none;"><div class="mode-options"><h4 class="title">Choose mode</h4> <ul class="color-mode-options"><li class="dark">dark</li><li class="auto active">auto</li><li class="light">light</li></ul></div></div></div> <div class="search-box"><i class="iconfont reco-search"></i> <input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav></div></header> <div class="sidebar-mask" data-v-319dd33c></div> <aside class="sidebar" data-v-319dd33c><div class="personal-info-wrapper" data-v-6c8ffc9c><img src="/vuepress/panda.png" alt="author-avatar" class="personal-img" data-v-6c8ffc9c> <h3 class="name" data-v-6c8ffc9c>
Jaasdsa
</h3> <div class="num" data-v-6c8ffc9c><div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>文章</h6></div> <div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>标签</h6></div></div> <hr data-v-6c8ffc9c></div> <nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav> <ul class="sidebar-links"><li><a href="/" class="sidebar-link">Home</a></li></ul> </aside> <div class="password-shadow password-wrapper-in" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0>Tags</h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div data-v-319dd33c><div class="tags" style="display:none;" data-v-36b9f66a data-v-2a407e7f data-v-2a407e7f><span class="active" style="background-color:#fb9b5f;" data-v-36b9f66a>全部</span></div> <div class="abstract-wrapper list" style="display:none;" data-v-b014bc36 data-v-2a407e7f data-v-2a407e7f></div> <div class="pagation pagation" style="display:none;" data-v-303bd5dc data-v-2a407e7f data-v-2a407e7f><div class="pagation-list" data-v-303bd5dc><span unselectable="on" class="jump" style="display:none;" data-v-303bd5dc>Prev</span> <span class="jump" style="display:none;" data-v-303bd5dc>1</span> <span class="ellipsis" style="display:none;" data-v-303bd5dc>...</span> <span class="ellipsis" style="display:none;" data-v-303bd5dc>...</span> <span class="jump" style="display:none;" data-v-303bd5dc>0</span> <span class="jump" style="display:none;" data-v-303bd5dc>Next</span> <span class="jumppoint" data-v-303bd5dc>跳转到:</span> <span class="jumpinp" data-v-303bd5dc><input type="text" value="" data-v-303bd5dc></span> <span class="jump gobtn" data-v-303bd5dc>GO</span></div></div> <div style="display:none;" data-v-319dd33c data-v-319dd33c><div class="comments-wrapper" style="display:none;" data-v-319dd33c><div class="valine-wrapper"><div id="valine"></div></div></div></div></div></div></div></div></div><div class="global-ui"><div class="back-to-ceiling" style="right:1rem;bottom:6rem;width:2.5rem;height:2.5rem;border-radius:.25rem;line-height:2.5rem;display:none;" data-v-a81d141e data-v-a81d141e><svg t="1574745035067" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5404" class="icon" data-v-a81d141e><path d="M526.60727968 10.90185116a27.675 27.675 0 0 0-29.21455937 0c-131.36607665 82.28402758-218.69155461 228.01873535-218.69155402 394.07834331a462.20625001 462.20625001 0 0 0 5.36959153 69.94390903c1.00431239 6.55289093-0.34802892 13.13561351-3.76865779 18.80351572-32.63518765 54.11355614-51.75690182 118.55860487-51.7569018 187.94566865a371.06718723 371.06718723 0 0 0 11.50484808 91.98906777c6.53300375 25.50556257 41.68394495 28.14064038 52.69160883 4.22606766 17.37162448-37.73630017 42.14135425-72.50938081 72.80769204-103.21549295 2.18761121 3.04276886 4.15646224 6.24463696 6.40373557 9.22774369a1871.4375 1871.4375 0 0 0 140.04691725 5.34970492 1866.36093723 1866.36093723 0 0 0 140.04691723-5.34970492c2.24727335-2.98310674 4.21612437-6.18497483 6.3937923-9.2178004 30.66633723 30.70611158 55.4360664 65.4791928 72.80769147 103.21549355 11.00766384 23.91457269 46.15860503 21.27949489 52.69160879-4.22606768a371.15156223 371.15156223 0 0 0 11.514792-91.99901164c0-69.36717486-19.13165746-133.82216804-51.75690182-187.92578088-3.42062944-5.66790279-4.76302748-12.26056868-3.76865837-18.80351632a462.20625001 462.20625001 0 0 0 5.36959269-69.943909c-0.00994388-166.08943902-87.32547796-311.81420293-218.6915546-394.09823051zM605.93803103 357.87693858a93.93749974 93.93749974 0 1 1-187.89594924 6.1e-7 93.93749974 93.93749974 0 0 1 187.89594924-6.1e-7z" p-id="5405" data-v-a81d141e></path><path d="M429.50777625 765.63860547C429.50777625 803.39355007 466.44236686 1000.39046097 512.00932183 1000.39046097c45.56695499 0 82.4922232-197.00623328 82.5015456-234.7518555 0-37.75494459-36.9345906-68.35043303-82.4922232-68.34111062-45.57627738-0.00932239-82.52019037 30.59548842-82.51086798 68.34111062z" p-id="5406" data-v-a81d141e></path></svg></div></div></div>
<script src="/assets/js/app.394670a6.js" defer></script><script src="/assets/js/5.1adb0957.js" defer></script><script src="/assets/js/1.564fda4f.js" defer></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Timeline | 物联网知识库</title>
<meta name="description" content="物联网知识点分享">
<meta name="generator" content="VuePress 1.3.1">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<link rel="icon" href="/favicon.ico">
<link rel="preload" href="/assets/css/0.styles.2c51ae0d.css" as="style"><link rel="preload" href="/assets/js/app.394670a6.js" as="script"><link rel="preload" href="/assets/js/8.6d98bd53.js" as="script"><link rel="preload" href="/assets/js/1.564fda4f.js" as="script"><link rel="prefetch" href="/assets/js/10.623acd6b.js"><link rel="prefetch" href="/assets/js/11.86f4dd7b.js"><link rel="prefetch" href="/assets/js/12.55cdf3a6.js"><link rel="prefetch" href="/assets/js/13.4fdfc039.js"><link rel="prefetch" href="/assets/js/14.87e817f5.js"><link rel="prefetch" href="/assets/js/15.3478b4f4.js"><link rel="prefetch" href="/assets/js/16.0f9fce17.js"><link rel="prefetch" href="/assets/js/17.8a162a2f.js"><link rel="prefetch" href="/assets/js/18.9ab8d900.js"><link rel="prefetch" href="/assets/js/3.a4daf23b.js"><link rel="prefetch" href="/assets/js/4.d089dd84.js"><link rel="prefetch" href="/assets/js/5.1adb0957.js"><link rel="prefetch" href="/assets/js/6.9e699f41.js"><link rel="prefetch" href="/assets/js/7.b3d344a0.js"><link rel="prefetch" href="/assets/js/9.05f0eb0f.js">
<link rel="stylesheet" href="/assets/css/0.styles.2c51ae0d.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div data-v-3cbc0e8d><div class="theme-container no-sidebar" data-v-319dd33c data-v-3cbc0e8d><div data-v-319dd33c><div id="loader-wrapper" class="loading-wrapper" data-v-4b73742e data-v-319dd33c data-v-319dd33c><div class="loader-main" data-v-4b73742e><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div></div> <!----> <!----></div> <div class="password-shadow password-wrapper-out" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0>物联网知识库</h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div class="hide" data-v-319dd33c><header class="navbar" data-v-319dd33c><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><img src="/vuepress/panda.png" alt="物联网知识库" class="logo"> <span class="site-name">物联网知识库</span></a> <div class="links"><div class="color-picker"><a class="color-button"><i class="iconfont reco-color"></i></a> <div class="color-picker-menu" style="display:none;"><div class="mode-options"><h4 class="title">Choose mode</h4> <ul class="color-mode-options"><li class="dark">dark</li><li class="auto active">auto</li><li class="light">light</li></ul></div></div></div> <div class="search-box"><i class="iconfont reco-search"></i> <input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav></div></header> <div class="sidebar-mask" data-v-319dd33c></div> <aside class="sidebar" data-v-319dd33c><div class="personal-info-wrapper" data-v-6c8ffc9c><img src="/vuepress/panda.png" alt="author-avatar" class="personal-img" data-v-6c8ffc9c> <h3 class="name" data-v-6c8ffc9c>
Jaasdsa
</h3> <div class="num" data-v-6c8ffc9c><div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>文章</h6></div> <div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>标签</h6></div></div> <hr data-v-6c8ffc9c></div> <nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav> <ul class="sidebar-links"><li><a href="/" class="sidebar-link">Home</a></li></ul> </aside> <div class="password-shadow password-wrapper-in" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0>Timeline</h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div data-v-319dd33c><ul class="timeline-wrapper" data-v-319dd33c data-v-3cbc0e8d><li class="desc" style="display:none;" data-v-3cbc0e8d data-v-3cbc0e8d>Yesterday Once More!</li> </ul> <div style="display:none;" data-v-319dd33c data-v-319dd33c><div class="comments-wrapper" style="display:none;" data-v-319dd33c><div class="valine-wrapper"><div id="valine"></div></div></div></div></div></div></div></div></div><div class="global-ui"><div class="back-to-ceiling" style="right:1rem;bottom:6rem;width:2.5rem;height:2.5rem;border-radius:.25rem;line-height:2.5rem;display:none;" data-v-a81d141e data-v-a81d141e><svg t="1574745035067" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5404" class="icon" data-v-a81d141e><path d="M526.60727968 10.90185116a27.675 27.675 0 0 0-29.21455937 0c-131.36607665 82.28402758-218.69155461 228.01873535-218.69155402 394.07834331a462.20625001 462.20625001 0 0 0 5.36959153 69.94390903c1.00431239 6.55289093-0.34802892 13.13561351-3.76865779 18.80351572-32.63518765 54.11355614-51.75690182 118.55860487-51.7569018 187.94566865a371.06718723 371.06718723 0 0 0 11.50484808 91.98906777c6.53300375 25.50556257 41.68394495 28.14064038 52.69160883 4.22606766 17.37162448-37.73630017 42.14135425-72.50938081 72.80769204-103.21549295 2.18761121 3.04276886 4.15646224 6.24463696 6.40373557 9.22774369a1871.4375 1871.4375 0 0 0 140.04691725 5.34970492 1866.36093723 1866.36093723 0 0 0 140.04691723-5.34970492c2.24727335-2.98310674 4.21612437-6.18497483 6.3937923-9.2178004 30.66633723 30.70611158 55.4360664 65.4791928 72.80769147 103.21549355 11.00766384 23.91457269 46.15860503 21.27949489 52.69160879-4.22606768a371.15156223 371.15156223 0 0 0 11.514792-91.99901164c0-69.36717486-19.13165746-133.82216804-51.75690182-187.92578088-3.42062944-5.66790279-4.76302748-12.26056868-3.76865837-18.80351632a462.20625001 462.20625001 0 0 0 5.36959269-69.943909c-0.00994388-166.08943902-87.32547796-311.81420293-218.6915546-394.09823051zM605.93803103 357.87693858a93.93749974 93.93749974 0 1 1-187.89594924 6.1e-7 93.93749974 93.93749974 0 0 1 187.89594924-6.1e-7z" p-id="5405" data-v-a81d141e></path><path d="M429.50777625 765.63860547C429.50777625 803.39355007 466.44236686 1000.39046097 512.00932183 1000.39046097c45.56695499 0 82.4922232-197.00623328 82.5015456-234.7518555 0-37.75494459-36.9345906-68.35043303-82.4922232-68.34111062-45.57627738-0.00932239-82.52019037 30.59548842-82.51086798 68.34111062z" p-id="5406" data-v-a81d141e></path></svg></div></div></div>
<script src="/assets/js/app.394670a6.js" defer></script><script src="/assets/js/8.6d98bd53.js" defer></script><script src="/assets/js/1.564fda4f.js" defer></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>设备通信 | 物联网知识库</title>
<meta name="description" content="物联网知识点分享">
<meta name="generator" content="VuePress 1.3.1">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<link rel="icon" href="/favicon.ico">
<link rel="preload" href="/assets/css/0.styles.2c51ae0d.css" as="style"><link rel="preload" href="/assets/js/app.394670a6.js" as="script"><link rel="preload" href="/assets/js/3.a4daf23b.js" as="script"><link rel="preload" href="/assets/js/1.564fda4f.js" as="script"><link rel="preload" href="/assets/js/13.4fdfc039.js" as="script"><link rel="prefetch" href="/assets/js/10.623acd6b.js"><link rel="prefetch" href="/assets/js/11.86f4dd7b.js"><link rel="prefetch" href="/assets/js/12.55cdf3a6.js"><link rel="prefetch" href="/assets/js/14.87e817f5.js"><link rel="prefetch" href="/assets/js/15.3478b4f4.js"><link rel="prefetch" href="/assets/js/16.0f9fce17.js"><link rel="prefetch" href="/assets/js/17.8a162a2f.js"><link rel="prefetch" href="/assets/js/18.9ab8d900.js"><link rel="prefetch" href="/assets/js/4.d089dd84.js"><link rel="prefetch" href="/assets/js/5.1adb0957.js"><link rel="prefetch" href="/assets/js/6.9e699f41.js"><link rel="prefetch" href="/assets/js/7.b3d344a0.js"><link rel="prefetch" href="/assets/js/8.6d98bd53.js"><link rel="prefetch" href="/assets/js/9.05f0eb0f.js">
<link rel="stylesheet" href="/assets/css/0.styles.2c51ae0d.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div><div class="theme-container" data-v-319dd33c><div data-v-319dd33c><div id="loader-wrapper" class="loading-wrapper" data-v-4b73742e data-v-319dd33c data-v-319dd33c><div class="loader-main" data-v-4b73742e><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div></div> <!----> <!----></div> <div class="password-shadow password-wrapper-out" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0>物联网知识库</h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div class="hide" data-v-319dd33c><header class="navbar" data-v-319dd33c><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><img src="/vuepress/panda.png" alt="物联网知识库" class="logo"> <span class="site-name">物联网知识库</span></a> <div class="links"><div class="color-picker"><a class="color-button"><i class="iconfont reco-color"></i></a> <div class="color-picker-menu" style="display:none;"><div class="mode-options"><h4 class="title">Choose mode</h4> <ul class="color-mode-options"><li class="dark">dark</li><li class="auto active">auto</li><li class="light">light</li></ul></div></div></div> <div class="search-box"><i class="iconfont reco-search"></i> <input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link router-link-active"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav></div></header> <div class="sidebar-mask" data-v-319dd33c></div> <aside class="sidebar" data-v-319dd33c><div class="personal-info-wrapper" data-v-6c8ffc9c><img src="/vuepress/panda.png" alt="author-avatar" class="personal-img" data-v-6c8ffc9c> <h3 class="name" data-v-6c8ffc9c>
Jaasdsa
</h3> <div class="num" data-v-6c8ffc9c><div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>文章</h6></div> <div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>标签</h6></div></div> <hr data-v-6c8ffc9c></div> <nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link router-link-active"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav> <ul class="sidebar-links"><li><a href="/views/gateway/" class="sidebar-link">边缘网关</a></li><li><a href="/views/gateway/modbus.html" class="sidebar-link">modbus</a></li><li><a href="/views/gateway/commination.html" class="active sidebar-link">设备通信</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/views/gateway/commination.html#通讯方式" class="sidebar-link">通讯方式</a></li><li class="sidebar-sub-header"><a href="/views/gateway/commination.html#环境准备" class="sidebar-link">环境准备</a></li><li class="sidebar-sub-header"><a href="/views/gateway/commination.html#kepserver-modbus-rtu-serial" class="sidebar-link">KepServer Modbus RTU Serial</a></li><li class="sidebar-sub-header"><a href="/views/gateway/commination.html#kepserver-iot-gateway" class="sidebar-link">KepServer IoT Gateway</a></li></ul></li></ul> </aside> <div class="password-shadow password-wrapper-in" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0></h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div data-v-319dd33c><main class="page"><div class="page-title" style="display:none;"><h1>设备通信</h1> <hr> <div data-v-484a899e><i class="iconfont reco-account" data-v-484a899e><span data-v-484a899e>Jaasdsa</span></i> <!----> <i class="iconfont reco-eye" data-v-484a899e><span id="/views/gateway/commination.html" data-flag-title="Your Article Title" class="leancloud-visitors" data-v-484a899e><a class="leancloud-visitors-count" style="font-size:.9rem;font-weight:normal;color:#999;"></a></span></i> <!----></div></div> <div class="theme-reco-content content__default" style="display:none;"><h1 id="设备通信"><a href="#设备通信" class="header-anchor">#</a> 设备通信</h1> <h2 id="通讯方式"><a href="#通讯方式" class="header-anchor">#</a> 通讯方式</h2> <ul><li>串口通信
串行接口是一种可以将接收来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接收的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。</li> <li>以太网通信
以太网是一种基带局域网技术,以太网通信是一种使用同轴电缆作为网络媒体,采用载波多路访问和冲突检测机制的通信方式,数据传输速率达到1Gbit/s,可满足非持续性网络数据传输的需要。</li></ul> <h2 id="环境准备"><a href="#环境准备" class="header-anchor">#</a> 环境准备</h2> <ul><li><a href="https://g.civnet.cn:8443/doc/software/raw/master/kepserverex.rar" target="_blank" rel="noopener noreferrer">kepserver6.4<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li> <li><a href="https://g.civnet.cn:8443/doc/software/raw/master/KEPServerEX-6.4.321.0%20%E7%88%86%E7%A0%B4(%E5%AE%8C%E7%BE%8E).rar" target="_blank" rel="noopener noreferrer">kepserver6.4补丁<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li> <li><a href="https://g.civnet.cn:8443/doc/software/raw/master/jre-8u241-windows-i586.exe" target="_blank" rel="noopener noreferrer">jre-8u241-windows-i586<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li> <li><a href="https://g.civnet.cn:8443/doc/software/raw/master/mqttfx-1.7.0-windows-x64.exe" target="_blank" rel="noopener noreferrer">mqtt.fx<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li> <li><a href="https://www.emqx.io/cn/" target="_blank" rel="noopener noreferrer">emq<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul> <h2 id="kepserver-modbus-rtu-serial"><a href="#kepserver-modbus-rtu-serial" class="header-anchor">#</a> KepServer Modbus RTU Serial</h2> <ol><li>kepServer添加通道选择Modbus RTU Serial驱动<br> <img src="/img/gateway/rtu1.jpg" alt="添加通道1"></li> <li>指定通道名称<br> <img src="/img/gateway/rtu2.jpg" alt="添加通道2"></li> <li>分配通道<br> <img src="/img/gateway/rtu3.jpg" alt="添加通道3"></li> <li><code>**重要**</code>选择COM口<br> <img src="/img/gateway/rtu4.jpg" alt="添加通道4"></li> <li>选择完成添加通道<br> <img src="/img/gateway/rtu6.jpg" alt="添加通道6"></li> <li>添加设备<br> <img src="/img/gateway/rtu11.jpg" alt="添加设备1"></li> <li>确定设备型号<br> <img src="/img/gateway/rtu12.jpg" alt="添加设备2"></li> <li><code>**重要**</code>确定从站ID<br> <img src="/img/gateway/rtu13.jpg" alt="添加设备2"></li> <li>选择完成添加设备<br> <img src="/img/gateway/rtu14.jpg" alt="添加设备3"></li> <li><code>**重要**</code>根据地址表添加条目<br> <img src="/img/gateway/rtu15.jpg" alt="添加条目1"></li> <li>验证采集结构,通信质量良好证明通信成功<br> <img src="/img/gateway/rtu16.jpg" alt="测试条目1"></li></ol> <h2 id="kepserver-iot-gateway"><a href="#kepserver-iot-gateway" class="header-anchor">#</a> KepServer IoT Gateway</h2> <p>使用KepServer IoT Gateway插件需要安装<code>32位jre</code><a href="https://g.civnet.cn:8443/doc/software/raw/master/jre-8u241-windows-i586.exe" target="_blank" rel="noopener noreferrer">jre-8u241-windows-i586<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></p> <ol><li>添加IoT Agent,选择MQTT Client<br> <img src="/img/gateway/iot1.jpg" alt="添加iot1"></li> <li>填写MQTT服务器参数信息
我这里使用的EMQ服务器搭建的测试服务器,可以参考<a href="https://www.emqx.io/cn/" target="_blank" rel="noopener noreferrer">emq<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a><br> <img src="/img/gateway/iot2.jpg" alt="添加iot2"></li> <li>填写MQTT客户端认证信息,注意:client ID相同会踢掉前任<br> <img src="/img/gateway/iot3.jpg" alt="添加iot3"></li> <li>选择要转发的条目<br> <img src="/img/gateway/iot4.jpg" alt="添加iot4"></li> <li>转发规则<br> <ul><li><code>only Data Changes</code>数据变化时上报</li> <li><code>every scan</code>每次轮询就上报<br> <img src="/img/gateway/iot5.jpg" alt="添加iot5"></li></ul></li> <li>验证转发,这里采用的MQTT.fx订阅mqtt服务器数据<a href="https://g.civnet.cn:8443/doc/software/raw/master/mqttfx-1.7.0-windows-x64.exe" target="_blank" rel="noopener noreferrer">mqtt.fx<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a><br> <img src="/img/gateway/iot6.jpg" alt="添加iot6"></li> <li>控制主题,网关订阅主题实现反向控制设备<br> <img src="/img/gateway/iot7.jpg" alt="添加iot7"></li></ol></div> <footer class="page-edit" style="display:none;"><div class="edit-link"><a href="https://g.civnet.cn:8443/doc/IoTDoc/edit/master/docs/views/gateway/commination.md" target="_blank" rel="noopener noreferrer">在 GitHub 上编辑此页!</a> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></div> <div class="last-updated"><span class="prefix">最后更新时间: </span> <span class="time">3/17/2020, 10:44:15 PM</span></div></footer> <!----></main> <!----> <div style="display:none;" data-v-319dd33c data-v-319dd33c><div class="comments-wrapper" data-v-319dd33c><div class="valine-wrapper"><div id="valine"></div></div></div></div></div></div></div></div></div><div class="global-ui"><div class="back-to-ceiling" style="right:1rem;bottom:6rem;width:2.5rem;height:2.5rem;border-radius:.25rem;line-height:2.5rem;display:none;" data-v-a81d141e data-v-a81d141e><svg t="1574745035067" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5404" class="icon" data-v-a81d141e><path d="M526.60727968 10.90185116a27.675 27.675 0 0 0-29.21455937 0c-131.36607665 82.28402758-218.69155461 228.01873535-218.69155402 394.07834331a462.20625001 462.20625001 0 0 0 5.36959153 69.94390903c1.00431239 6.55289093-0.34802892 13.13561351-3.76865779 18.80351572-32.63518765 54.11355614-51.75690182 118.55860487-51.7569018 187.94566865a371.06718723 371.06718723 0 0 0 11.50484808 91.98906777c6.53300375 25.50556257 41.68394495 28.14064038 52.69160883 4.22606766 17.37162448-37.73630017 42.14135425-72.50938081 72.80769204-103.21549295 2.18761121 3.04276886 4.15646224 6.24463696 6.40373557 9.22774369a1871.4375 1871.4375 0 0 0 140.04691725 5.34970492 1866.36093723 1866.36093723 0 0 0 140.04691723-5.34970492c2.24727335-2.98310674 4.21612437-6.18497483 6.3937923-9.2178004 30.66633723 30.70611158 55.4360664 65.4791928 72.80769147 103.21549355 11.00766384 23.91457269 46.15860503 21.27949489 52.69160879-4.22606768a371.15156223 371.15156223 0 0 0 11.514792-91.99901164c0-69.36717486-19.13165746-133.82216804-51.75690182-187.92578088-3.42062944-5.66790279-4.76302748-12.26056868-3.76865837-18.80351632a462.20625001 462.20625001 0 0 0 5.36959269-69.943909c-0.00994388-166.08943902-87.32547796-311.81420293-218.6915546-394.09823051zM605.93803103 357.87693858a93.93749974 93.93749974 0 1 1-187.89594924 6.1e-7 93.93749974 93.93749974 0 0 1 187.89594924-6.1e-7z" p-id="5405" data-v-a81d141e></path><path d="M429.50777625 765.63860547C429.50777625 803.39355007 466.44236686 1000.39046097 512.00932183 1000.39046097c45.56695499 0 82.4922232-197.00623328 82.5015456-234.7518555 0-37.75494459-36.9345906-68.35043303-82.4922232-68.34111062-45.57627738-0.00932239-82.52019037 30.59548842-82.51086798 68.34111062z" p-id="5406" data-v-a81d141e></path></svg></div></div></div>
<script src="/assets/js/app.394670a6.js" defer></script><script src="/assets/js/3.a4daf23b.js" defer></script><script src="/assets/js/1.564fda4f.js" defer></script><script src="/assets/js/13.4fdfc039.js" defer></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>边缘网关 | 物联网知识库</title>
<meta name="description" content="物联网知识点分享">
<meta name="generator" content="VuePress 1.3.1">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<link rel="icon" href="/favicon.ico">
<link rel="preload" href="/assets/css/0.styles.2c51ae0d.css" as="style"><link rel="preload" href="/assets/js/app.394670a6.js" as="script"><link rel="preload" href="/assets/js/3.a4daf23b.js" as="script"><link rel="preload" href="/assets/js/1.564fda4f.js" as="script"><link rel="preload" href="/assets/js/12.55cdf3a6.js" as="script"><link rel="prefetch" href="/assets/js/10.623acd6b.js"><link rel="prefetch" href="/assets/js/11.86f4dd7b.js"><link rel="prefetch" href="/assets/js/13.4fdfc039.js"><link rel="prefetch" href="/assets/js/14.87e817f5.js"><link rel="prefetch" href="/assets/js/15.3478b4f4.js"><link rel="prefetch" href="/assets/js/16.0f9fce17.js"><link rel="prefetch" href="/assets/js/17.8a162a2f.js"><link rel="prefetch" href="/assets/js/18.9ab8d900.js"><link rel="prefetch" href="/assets/js/4.d089dd84.js"><link rel="prefetch" href="/assets/js/5.1adb0957.js"><link rel="prefetch" href="/assets/js/6.9e699f41.js"><link rel="prefetch" href="/assets/js/7.b3d344a0.js"><link rel="prefetch" href="/assets/js/8.6d98bd53.js"><link rel="prefetch" href="/assets/js/9.05f0eb0f.js">
<link rel="stylesheet" href="/assets/css/0.styles.2c51ae0d.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div><div class="theme-container" data-v-319dd33c><div data-v-319dd33c><div id="loader-wrapper" class="loading-wrapper" data-v-4b73742e data-v-319dd33c data-v-319dd33c><div class="loader-main" data-v-4b73742e><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div></div> <!----> <!----></div> <div class="password-shadow password-wrapper-out" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0>物联网知识库</h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div class="hide" data-v-319dd33c><header class="navbar" data-v-319dd33c><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><img src="/vuepress/panda.png" alt="物联网知识库" class="logo"> <span class="site-name">物联网知识库</span></a> <div class="links"><div class="color-picker"><a class="color-button"><i class="iconfont reco-color"></i></a> <div class="color-picker-menu" style="display:none;"><div class="mode-options"><h4 class="title">Choose mode</h4> <ul class="color-mode-options"><li class="dark">dark</li><li class="auto active">auto</li><li class="light">light</li></ul></div></div></div> <div class="search-box"><i class="iconfont reco-search"></i> <input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link router-link-exact-active router-link-active"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav></div></header> <div class="sidebar-mask" data-v-319dd33c></div> <aside class="sidebar" data-v-319dd33c><div class="personal-info-wrapper" data-v-6c8ffc9c><img src="/vuepress/panda.png" alt="author-avatar" class="personal-img" data-v-6c8ffc9c> <h3 class="name" data-v-6c8ffc9c>
Jaasdsa
</h3> <div class="num" data-v-6c8ffc9c><div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>文章</h6></div> <div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>标签</h6></div></div> <hr data-v-6c8ffc9c></div> <nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link router-link-exact-active router-link-active"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav> <ul class="sidebar-links"><li><a href="/views/gateway/" class="active sidebar-link">边缘网关</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/views/gateway/#简述" class="sidebar-link">简述</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/views/gateway/#什么是边缘网关" class="sidebar-link">什么是边缘网关</a></li><li class="sidebar-sub-header"><a href="/views/gateway/#边缘网关功能" class="sidebar-link">边缘网关功能</a></li></ul></li><li class="sidebar-sub-header"><a href="/views/gateway/#vpn物联网方案" class="sidebar-link">VPN物联网方案</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/views/gateway/#概述" class="sidebar-link">概述</a></li><li class="sidebar-sub-header"><a href="/views/gateway/#数据流程图" class="sidebar-link">数据流程图</a></li><li class="sidebar-sub-header"><a href="/views/gateway/#分析" class="sidebar-link">分析</a></li></ul></li><li class="sidebar-sub-header"><a href="/views/gateway/#边缘网关物联网方案" class="sidebar-link">边缘网关物联网方案</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/views/gateway/#概述-2" class="sidebar-link">概述</a></li><li class="sidebar-sub-header"><a href="/views/gateway/#数据流程图-2" class="sidebar-link">数据流程图</a></li><li class="sidebar-sub-header"><a href="/views/gateway/#分析-2" class="sidebar-link">分析</a></li></ul></li><li class="sidebar-sub-header"><a href="/views/gateway/#市场边缘网关产品" class="sidebar-link">市场边缘网关产品</a></li></ul></li><li><a href="/views/gateway/modbus.html" class="sidebar-link">modbus</a></li><li><a href="/views/gateway/commination.html" class="sidebar-link">设备通信</a></li></ul> </aside> <div class="password-shadow password-wrapper-in" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0></h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div data-v-319dd33c><main class="page"><div class="page-title" style="display:none;"><h1>边缘网关</h1> <hr> <div data-v-484a899e><i class="iconfont reco-account" data-v-484a899e><span data-v-484a899e>Jaasdsa</span></i> <!----> <!----> <!----></div></div> <div class="theme-reco-content content__default" style="display:none;"><h1 id="边缘网关"><a href="#边缘网关" class="header-anchor">#</a> 边缘网关</h1> <h2 id="简述"><a href="#简述" class="header-anchor">#</a> 简述</h2> <h3 id="什么是边缘网关"><a href="#什么是边缘网关" class="header-anchor">#</a> 什么是边缘网关</h3> <p>边缘网关是部署在网络边缘侧的网关,通过<code>网络联接</code><code>协议转换</code><code>逻辑运算</code>等功能联接物理和数字世界,提供轻量化的联接管理、实时数据分析及应用管理功能。</p> <h3 id="边缘网关功能"><a href="#边缘网关功能" class="header-anchor">#</a> 边缘网关功能</h3> <ul><li>丰富的接口和协议,方便现场设备能够广泛的接入</li> <li>支持物联网协议(如MQTT),兼容协议广、开放包容,平滑接入各种云平台</li> <li>支持本地存储</li> <li>兼容多种通信方式,专利技术保障无线通信“永久在线”</li> <li>多数据中心同步传输,管理协同更高效</li> <li>支持数据补传</li> <li>支持本地或远程配置升级,网关管理简便</li> <li>专为无人值守环境设计,适用恶劣工况环境</li> <li>高清触摸屏(选配)</li></ul> <h2 id="vpn物联网方案"><a href="#vpn物联网方案" class="header-anchor">#</a> VPN物联网方案</h2> <h3 id="概述"><a href="#概述" class="header-anchor">#</a> 概述</h3> <p>通过搭建VPN服务器实现泵房和服务器在同一<code>局域网</code>。通过传统组态软件进行即可视化调试。</p> <h3 id="数据流程图"><a href="#数据流程图" class="header-anchor">#</a> 数据流程图</h3> <p><img src="/img/gateway/oldDataStream.jpg" alt="数据流程图"></p> <h3 id="分析"><a href="#分析" class="header-anchor">#</a> 分析</h3> <ul><li>优点
<ol><li>远程维护便捷性</li> <li>上位机选型空间大</li></ol></li> <li>缺点
<ol><li>VPN组网价格较高</li> <li>实施需要专业网络技能</li></ol></li></ul> <h2 id="边缘网关物联网方案"><a href="#边缘网关物联网方案" class="header-anchor">#</a> 边缘网关物联网方案</h2> <h3 id="概述-2"><a href="#概述-2" class="header-anchor">#</a> 概述</h3> <p><code>分布式</code>部署边缘网关,通过每个边缘网关采集各自负责的边缘模块,在边缘解决<code>设备通讯</code><code>协议转换</code><code>存储</code>等功能,并跟数据中心建立<code>持久化``双向链接</code></p> <h3 id="数据流程图-2"><a href="#数据流程图-2" class="header-anchor">#</a> 数据流程图</h3> <p><img src="/img/gateway/newDataStream.jpg" alt="数据流程图"></p> <h3 id="分析-2"><a href="#分析-2" class="header-anchor">#</a> 分析</h3> <ul><li>优点
<ol><li>将通讯和解析压力分散到各自模块当中</li> <li>每个通信单元互不影响,排查故障简单</li></ol></li> <li>缺点
<ol><li>边缘网关种类繁多,不易选型</li> <li>由于下位机的不确定性,难一做到一个网关适配所有的下位机,通常是根据实际工况选型对应的设备</li></ol></li></ul> <h2 id="市场边缘网关产品"><a href="#市场边缘网关产品" class="header-anchor">#</a> 市场边缘网关产品</h2> <p><a href="https://g.civnet.cn:8443/doc/software/raw/master/%E7%89%A9%E8%81%94%E7%BD%91%E5%85%B3%E4%BA%A7%E5%93%81%E5%AF%B9%E6%AF%94.xlsx" target="_blank" rel="noopener noreferrer">产品对比<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></p></div> <footer class="page-edit" style="display:none;"><div class="edit-link"><a href="https://g.civnet.cn:8443/doc/IoTDoc/edit/master/docs/views/gateway/README.md" target="_blank" rel="noopener noreferrer">在 GitHub 上编辑此页!</a> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></div> <div class="last-updated"><span class="prefix">最后更新时间: </span> <span class="time">3/17/2020, 3:37:46 PM</span></div></footer> <!----></main> <!----> <div style="display:none;" data-v-319dd33c data-v-319dd33c><div class="comments-wrapper" data-v-319dd33c><div class="valine-wrapper"><div id="valine"></div></div></div></div></div></div></div></div></div><div class="global-ui"><div class="back-to-ceiling" style="right:1rem;bottom:6rem;width:2.5rem;height:2.5rem;border-radius:.25rem;line-height:2.5rem;display:none;" data-v-a81d141e data-v-a81d141e><svg t="1574745035067" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5404" class="icon" data-v-a81d141e><path d="M526.60727968 10.90185116a27.675 27.675 0 0 0-29.21455937 0c-131.36607665 82.28402758-218.69155461 228.01873535-218.69155402 394.07834331a462.20625001 462.20625001 0 0 0 5.36959153 69.94390903c1.00431239 6.55289093-0.34802892 13.13561351-3.76865779 18.80351572-32.63518765 54.11355614-51.75690182 118.55860487-51.7569018 187.94566865a371.06718723 371.06718723 0 0 0 11.50484808 91.98906777c6.53300375 25.50556257 41.68394495 28.14064038 52.69160883 4.22606766 17.37162448-37.73630017 42.14135425-72.50938081 72.80769204-103.21549295 2.18761121 3.04276886 4.15646224 6.24463696 6.40373557 9.22774369a1871.4375 1871.4375 0 0 0 140.04691725 5.34970492 1866.36093723 1866.36093723 0 0 0 140.04691723-5.34970492c2.24727335-2.98310674 4.21612437-6.18497483 6.3937923-9.2178004 30.66633723 30.70611158 55.4360664 65.4791928 72.80769147 103.21549355 11.00766384 23.91457269 46.15860503 21.27949489 52.69160879-4.22606768a371.15156223 371.15156223 0 0 0 11.514792-91.99901164c0-69.36717486-19.13165746-133.82216804-51.75690182-187.92578088-3.42062944-5.66790279-4.76302748-12.26056868-3.76865837-18.80351632a462.20625001 462.20625001 0 0 0 5.36959269-69.943909c-0.00994388-166.08943902-87.32547796-311.81420293-218.6915546-394.09823051zM605.93803103 357.87693858a93.93749974 93.93749974 0 1 1-187.89594924 6.1e-7 93.93749974 93.93749974 0 0 1 187.89594924-6.1e-7z" p-id="5405" data-v-a81d141e></path><path d="M429.50777625 765.63860547C429.50777625 803.39355007 466.44236686 1000.39046097 512.00932183 1000.39046097c45.56695499 0 82.4922232-197.00623328 82.5015456-234.7518555 0-37.75494459-36.9345906-68.35043303-82.4922232-68.34111062-45.57627738-0.00932239-82.52019037 30.59548842-82.51086798 68.34111062z" p-id="5406" data-v-a81d141e></path></svg></div></div></div>
<script src="/assets/js/app.394670a6.js" defer></script><script src="/assets/js/3.a4daf23b.js" defer></script><script src="/assets/js/1.564fda4f.js" defer></script><script src="/assets/js/12.55cdf3a6.js" defer></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>modbus | 物联网知识库</title>
<meta name="description" content="物联网知识点分享">
<meta name="generator" content="VuePress 1.3.1">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<link rel="icon" href="/favicon.ico">
<link rel="preload" href="/assets/css/0.styles.2c51ae0d.css" as="style"><link rel="preload" href="/assets/js/app.394670a6.js" as="script"><link rel="preload" href="/assets/js/3.a4daf23b.js" as="script"><link rel="preload" href="/assets/js/1.564fda4f.js" as="script"><link rel="preload" href="/assets/js/14.87e817f5.js" as="script"><link rel="prefetch" href="/assets/js/10.623acd6b.js"><link rel="prefetch" href="/assets/js/11.86f4dd7b.js"><link rel="prefetch" href="/assets/js/12.55cdf3a6.js"><link rel="prefetch" href="/assets/js/13.4fdfc039.js"><link rel="prefetch" href="/assets/js/15.3478b4f4.js"><link rel="prefetch" href="/assets/js/16.0f9fce17.js"><link rel="prefetch" href="/assets/js/17.8a162a2f.js"><link rel="prefetch" href="/assets/js/18.9ab8d900.js"><link rel="prefetch" href="/assets/js/4.d089dd84.js"><link rel="prefetch" href="/assets/js/5.1adb0957.js"><link rel="prefetch" href="/assets/js/6.9e699f41.js"><link rel="prefetch" href="/assets/js/7.b3d344a0.js"><link rel="prefetch" href="/assets/js/8.6d98bd53.js"><link rel="prefetch" href="/assets/js/9.05f0eb0f.js">
<link rel="stylesheet" href="/assets/css/0.styles.2c51ae0d.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div><div class="theme-container" data-v-319dd33c><div data-v-319dd33c><div id="loader-wrapper" class="loading-wrapper" data-v-4b73742e data-v-319dd33c data-v-319dd33c><div class="loader-main" data-v-4b73742e><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div></div> <!----> <!----></div> <div class="password-shadow password-wrapper-out" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0>物联网知识库</h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div class="hide" data-v-319dd33c><header class="navbar" data-v-319dd33c><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><img src="/vuepress/panda.png" alt="物联网知识库" class="logo"> <span class="site-name">物联网知识库</span></a> <div class="links"><div class="color-picker"><a class="color-button"><i class="iconfont reco-color"></i></a> <div class="color-picker-menu" style="display:none;"><div class="mode-options"><h4 class="title">Choose mode</h4> <ul class="color-mode-options"><li class="dark">dark</li><li class="auto active">auto</li><li class="light">light</li></ul></div></div></div> <div class="search-box"><i class="iconfont reco-search"></i> <input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link router-link-active"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav></div></header> <div class="sidebar-mask" data-v-319dd33c></div> <aside class="sidebar" data-v-319dd33c><div class="personal-info-wrapper" data-v-6c8ffc9c><img src="/vuepress/panda.png" alt="author-avatar" class="personal-img" data-v-6c8ffc9c> <h3 class="name" data-v-6c8ffc9c>
Jaasdsa
</h3> <div class="num" data-v-6c8ffc9c><div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>文章</h6></div> <div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>标签</h6></div></div> <hr data-v-6c8ffc9c></div> <nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link router-link-active"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav> <ul class="sidebar-links"><li><a href="/views/gateway/" class="sidebar-link">边缘网关</a></li><li><a href="/views/gateway/modbus.html" class="active sidebar-link">modbus</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/views/gateway/modbus.html#应用层协议" class="sidebar-link">应用层协议</a></li><li class="sidebar-sub-header"><a href="/views/gateway/modbus.html#工作方式" class="sidebar-link">工作方式</a></li><li class="sidebar-sub-header"><a href="/views/gateway/modbus.html#工作模式" class="sidebar-link">工作模式</a></li><li class="sidebar-sub-header"><a href="/views/gateway/modbus.html#协议内容" class="sidebar-link">协议内容</a></li><li class="sidebar-sub-header"><a href="/views/gateway/modbus.html#包格式" class="sidebar-link">包格式</a></li><li class="sidebar-sub-header"><a href="/views/gateway/modbus.html#rtu和ascii的区别" class="sidebar-link">RTU和ASCII的区别</a></li><li class="sidebar-sub-header"><a href="/views/gateway/modbus.html#modbus-slave-poll" class="sidebar-link">modbus Slave&amp;Poll</a></li></ul></li><li><a href="/views/gateway/commination.html" class="sidebar-link">设备通信</a></li></ul> </aside> <div class="password-shadow password-wrapper-in" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0></h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div data-v-319dd33c><main class="page"><div class="page-title" style="display:none;"><h1>modbus</h1> <hr> <div data-v-484a899e><i class="iconfont reco-account" data-v-484a899e><span data-v-484a899e>Jaasdsa</span></i> <!----> <i class="iconfont reco-eye" data-v-484a899e><span id="/views/gateway/modbus.html" data-flag-title="Your Article Title" class="leancloud-visitors" data-v-484a899e><a class="leancloud-visitors-count" style="font-size:.9rem;font-weight:normal;color:#999;"></a></span></i> <!----></div></div> <div class="theme-reco-content content__default" style="display:none;"><h1 id="modbus"><a href="#modbus" class="header-anchor">#</a> modbus</h1> <h2 id="应用层协议"><a href="#应用层协议" class="header-anchor">#</a> 应用层协议</h2> <p>Modbus协议是OSI模型的<code>第七层</code>的应用层通讯协议,定义了不同类型设备间交换信息方式,以及信息的格式。<br> <img src="/img/gateway/modbusosi.png" alt="image"></p> <h2 id="工作方式"><a href="#工作方式" class="header-anchor">#</a> 工作方式</h2> <p>Modbus的工作方式是<code>请求</code>/<code>应答</code>,每次通讯都是主站先发送指令,可以是广播,或是向特定从站的单播,从站响应指令,并按要求应答,或者报告异常。当主站不发送请求时,从站不会自己发出数据,从站和从站之间不能直接通讯。</p> <h2 id="工作模式"><a href="#工作模式" class="header-anchor">#</a> 工作模式</h2> <p>分为<code>串行</code><code>TCP</code>,串行又分为<code>ASCII</code><code>RTU</code>。对于Modbus TCP而言,主站通常称为Client,从站称为Server;而对于Modbus RTU和Modbus ASCII来说,主站是Master,从站是Slave。Modbus TCP基于以太网和TCP/IP协议,Modbus RTU和Modbus ASCII则是使用异步串行传输(通常是RS-232/422/485)。</p> <h2 id="协议内容"><a href="#协议内容" class="header-anchor">#</a> 协议内容</h2> <ul><li><a href="https://g.civnet.cn:8443/doc/software/raw/master/Modbus%E9%80%9A%E8%AE%AF%E5%8D%8F%E8%AE%AE.pdf" target="_blank" rel="noopener noreferrer">协议内容下载地址<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> <br> <img src="/img/gateway/mod1.jpg" alt="modbus1"> <img src="/img/gateway/mod2.jpg" alt="modbus2"> <br> <img src="/img/gateway/mod3.jpg" alt="modbus3"> <img src="/img/gateway/mod4.jpg" alt="modbus4"></li></ul> <h2 id="包格式"><a href="#包格式" class="header-anchor">#</a> 包格式</h2> <p>Modbus协议的报文(或帧)的基本格式是:<br> <img src="/img/gateway/modbusContent.png" alt="image"></p> <ul><li>对TCP。Modbus On TCP给PDU加上表头,没有差错校验(因为下面的TCP是基于可靠的连接),然后交给TCP层。</li> <li>对serial。PDU被直接交给Modbus链路层加上表头和校验码。表头包含Modbus从站地址,RTU用CRC校验,ASCII用LRC校验。
表头包含了从站的地址,功能码告诉从站要执行何种功能,数据区是具体的信息。</li></ul> <p>先以RTU为例,主站发送了:</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>09 03 00 04 00 03 XX YY
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p>主站告诉从站09,我要做&quot;03&quot;操作,即读Holding Register内容,开始偏移地址为4、长度为3。因为Holding Register的有效地址范围是40001-49999,开始偏移地址4、长度为3即地址40005、40006、40007的值。&quot;XXYY&quot;代表RTU的校验位CRC。
从站收到信息后,就从对应的寄存器找到数值,回复:</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>09 03 06 02 2B 00 01 00 64 XX YY
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p>从站回答,该地址偏移为4的寄存器值为02 2B,地址偏移为5的寄存器值为00 01,地址偏移为6的寄存器值为00 64。其中&quot;09 03&quot;是复制了主站发来的地址和功能码,&quot;06&quot;代表接下来的数据共有6个字节。
如果从站收到了一个错误的请求,例如发现要读的寄存器地址是错误的,则回复:09 83 02 XX YY
其中&quot;83&quot;是把功能码&quot;03&quot;的最高位置1,告诉主站发生了异常,&quot;02&quot;是异常码,说明发生了无效地址的异常。
#Modbus的四种数据类型</p> <ul><li>Coil:可读可写bit,既可以是一个输出量输出点,也可以是数字量输入点,有效的地址范围是1-9999。</li> <li>Input Status:只读bit,即数字量输出点,有效地址范围是10001-19999。</li> <li>Input Register:只读word,可以用作模拟量或16位打包输入点,有效地址范围是30001-39999。</li> <li>Holding Register:可读可写word,既可以是一个模拟量或16位打包输入点,也可以是模拟量或16位打包输出点,有效地址范围是40001-49999。</li></ul> <p>在PLC或DCS上用点名标记不同的变量,在Modbus则以数据地址来标记每个点。以上所说的地址都是参考地址,而不是实际的物理地址。上述的地址是在设备中的地址,按照<code>PLC的习惯从1开始递增</code>,而Modbus报文中是从0开始递增。例如地址偏移为4、5、6的Holding Register,其实是指参考地址是40005、40006、40007的寄存器。
#TCP、Serial的区别
对于Modbus TCP而言,主站通常称为Client,从站称为Server;而对于Modbus RTU和Modbus ASCII来说,主站是Master,从站是Slave。Modbus TCP端口号是502<br> <a href="http://www.ip33.com/crc.html" target="_blank" rel="noopener noreferrer">CRC循环校验<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></p> <h2 id="rtu和ascii的区别"><a href="#rtu和ascii的区别" class="header-anchor">#</a> RTU和ASCII的区别</h2> <p>RTU模式下,一个字节的数据,传输的就是一个字节。ASCII模式下,同样一个字节数据用了两个字节来传输。
例如,要传输数字0x5B,RTU传输的是0101 1011(二进制),而ASCII传输的是00110101(53,ASCII的5的码是53)和01000010。可见,ASCII传输的速率是RTU的一半。ASCII模式采用LRC校验,RTU模式采用16位CRC校验。</p> <h2 id="modbus-slave-poll"><a href="#modbus-slave-poll" class="header-anchor">#</a> modbus Slave&amp;Poll</h2> <ul><li>使用教程:<a href="https://www.cnblogs.com/hieroly/p/9063710.html" target="_blank" rel="noopener noreferrer">参考链接<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li> <li>下载地址:
<a href="https://g.civnet.cn:8443/doc/software/raw/master/ModbusPollSalveSN.rar" target="_blank" rel="noopener noreferrer">modbus Slave&amp;Poll<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> <a href="https://g.civnet.cn:8443/doc/software/raw/master/virtualserialportdriver8.rar" target="_blank" rel="noopener noreferrer">虚拟串口<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div> <footer class="page-edit" style="display:none;"><div class="edit-link"><a href="https://g.civnet.cn:8443/doc/IoTDoc/edit/master/docs/views/gateway/modbus.md" target="_blank" rel="noopener noreferrer">在 GitHub 上编辑此页!</a> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></div> <div class="last-updated"><span class="prefix">最后更新时间: </span> <span class="time">3/17/2020, 3:37:46 PM</span></div></footer> <!----></main> <!----> <div style="display:none;" data-v-319dd33c data-v-319dd33c><div class="comments-wrapper" data-v-319dd33c><div class="valine-wrapper"><div id="valine"></div></div></div></div></div></div></div></div></div><div class="global-ui"><div class="back-to-ceiling" style="right:1rem;bottom:6rem;width:2.5rem;height:2.5rem;border-radius:.25rem;line-height:2.5rem;display:none;" data-v-a81d141e data-v-a81d141e><svg t="1574745035067" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5404" class="icon" data-v-a81d141e><path d="M526.60727968 10.90185116a27.675 27.675 0 0 0-29.21455937 0c-131.36607665 82.28402758-218.69155461 228.01873535-218.69155402 394.07834331a462.20625001 462.20625001 0 0 0 5.36959153 69.94390903c1.00431239 6.55289093-0.34802892 13.13561351-3.76865779 18.80351572-32.63518765 54.11355614-51.75690182 118.55860487-51.7569018 187.94566865a371.06718723 371.06718723 0 0 0 11.50484808 91.98906777c6.53300375 25.50556257 41.68394495 28.14064038 52.69160883 4.22606766 17.37162448-37.73630017 42.14135425-72.50938081 72.80769204-103.21549295 2.18761121 3.04276886 4.15646224 6.24463696 6.40373557 9.22774369a1871.4375 1871.4375 0 0 0 140.04691725 5.34970492 1866.36093723 1866.36093723 0 0 0 140.04691723-5.34970492c2.24727335-2.98310674 4.21612437-6.18497483 6.3937923-9.2178004 30.66633723 30.70611158 55.4360664 65.4791928 72.80769147 103.21549355 11.00766384 23.91457269 46.15860503 21.27949489 52.69160879-4.22606768a371.15156223 371.15156223 0 0 0 11.514792-91.99901164c0-69.36717486-19.13165746-133.82216804-51.75690182-187.92578088-3.42062944-5.66790279-4.76302748-12.26056868-3.76865837-18.80351632a462.20625001 462.20625001 0 0 0 5.36959269-69.943909c-0.00994388-166.08943902-87.32547796-311.81420293-218.6915546-394.09823051zM605.93803103 357.87693858a93.93749974 93.93749974 0 1 1-187.89594924 6.1e-7 93.93749974 93.93749974 0 0 1 187.89594924-6.1e-7z" p-id="5405" data-v-a81d141e></path><path d="M429.50777625 765.63860547C429.50777625 803.39355007 466.44236686 1000.39046097 512.00932183 1000.39046097c45.56695499 0 82.4922232-197.00623328 82.5015456-234.7518555 0-37.75494459-36.9345906-68.35043303-82.4922232-68.34111062-45.57627738-0.00932239-82.52019037 30.59548842-82.51086798 68.34111062z" p-id="5406" data-v-a81d141e></path></svg></div></div></div>
<script src="/assets/js/app.394670a6.js" defer></script><script src="/assets/js/3.a4daf23b.js" defer></script><script src="/assets/js/1.564fda4f.js" defer></script><script src="/assets/js/14.87e817f5.js" defer></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>IoT | 物联网知识库</title>
<meta name="description" content="物联网知识点分享">
<meta name="generator" content="VuePress 1.3.1">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<link rel="icon" href="/favicon.ico">
<link rel="preload" href="/assets/css/0.styles.2c51ae0d.css" as="style"><link rel="preload" href="/assets/js/app.394670a6.js" as="script"><link rel="preload" href="/assets/js/3.a4daf23b.js" as="script"><link rel="preload" href="/assets/js/1.564fda4f.js" as="script"><link rel="preload" href="/assets/js/15.3478b4f4.js" as="script"><link rel="prefetch" href="/assets/js/10.623acd6b.js"><link rel="prefetch" href="/assets/js/11.86f4dd7b.js"><link rel="prefetch" href="/assets/js/12.55cdf3a6.js"><link rel="prefetch" href="/assets/js/13.4fdfc039.js"><link rel="prefetch" href="/assets/js/14.87e817f5.js"><link rel="prefetch" href="/assets/js/16.0f9fce17.js"><link rel="prefetch" href="/assets/js/17.8a162a2f.js"><link rel="prefetch" href="/assets/js/18.9ab8d900.js"><link rel="prefetch" href="/assets/js/4.d089dd84.js"><link rel="prefetch" href="/assets/js/5.1adb0957.js"><link rel="prefetch" href="/assets/js/6.9e699f41.js"><link rel="prefetch" href="/assets/js/7.b3d344a0.js"><link rel="prefetch" href="/assets/js/8.6d98bd53.js"><link rel="prefetch" href="/assets/js/9.05f0eb0f.js">
<link rel="stylesheet" href="/assets/css/0.styles.2c51ae0d.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div><div class="theme-container" data-v-319dd33c><div data-v-319dd33c><div id="loader-wrapper" class="loading-wrapper" data-v-4b73742e data-v-319dd33c data-v-319dd33c><div class="loader-main" data-v-4b73742e><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div></div> <!----> <!----></div> <div class="password-shadow password-wrapper-out" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0>物联网知识库</h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div class="hide" data-v-319dd33c><header class="navbar" data-v-319dd33c><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><img src="/vuepress/panda.png" alt="物联网知识库" class="logo"> <span class="site-name">物联网知识库</span></a> <div class="links"><div class="color-picker"><a class="color-button"><i class="iconfont reco-color"></i></a> <div class="color-picker-menu" style="display:none;"><div class="mode-options"><h4 class="title">Choose mode</h4> <ul class="color-mode-options"><li class="dark">dark</li><li class="auto active">auto</li><li class="light">light</li></ul></div></div></div> <div class="search-box"><i class="iconfont reco-search"></i> <input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link router-link-exact-active router-link-active"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav></div></header> <div class="sidebar-mask" data-v-319dd33c></div> <aside class="sidebar" data-v-319dd33c><div class="personal-info-wrapper" data-v-6c8ffc9c><img src="/vuepress/panda.png" alt="author-avatar" class="personal-img" data-v-6c8ffc9c> <h3 class="name" data-v-6c8ffc9c>
Jaasdsa
</h3> <div class="num" data-v-6c8ffc9c><div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>文章</h6></div> <div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>标签</h6></div></div> <hr data-v-6c8ffc9c></div> <nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link router-link-exact-active router-link-active"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>物联网</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/views/iot/" class="active sidebar-link">IoT</a></li></ul></section></li></ul> </aside> <div class="password-shadow password-wrapper-in" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0></h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div data-v-319dd33c><main class="page"><div class="page-title" style="display:none;"><h1>IoT</h1> <hr> <div data-v-484a899e><i class="iconfont reco-account" data-v-484a899e><span data-v-484a899e>Jaasdsa</span></i> <!----> <i class="iconfont reco-eye" data-v-484a899e><span id="/views/iot/" data-flag-title="Your Article Title" class="leancloud-visitors" data-v-484a899e><a class="leancloud-visitors-count" style="font-size:.9rem;font-weight:normal;color:#999;"></a></span></i> <!----></div></div> <div class="theme-reco-content content__default" style="display:none;"><h1 id="iot"><a href="#iot" class="header-anchor">#</a> IoT</h1></div> <footer class="page-edit" style="display:none;"><div class="edit-link"><a href="https://g.civnet.cn:8443/doc/IoTDoc/edit/master/docs/views/iot/README.md" target="_blank" rel="noopener noreferrer">在 GitHub 上编辑此页!</a> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></div> <div class="last-updated"><span class="prefix">最后更新时间: </span> <span class="time">3/16/2020, 8:54:33 PM</span></div></footer> <!----></main> <!----> <div style="display:none;" data-v-319dd33c data-v-319dd33c><div class="comments-wrapper" data-v-319dd33c><div class="valine-wrapper"><div id="valine"></div></div></div></div></div></div></div></div></div><div class="global-ui"><div class="back-to-ceiling" style="right:1rem;bottom:6rem;width:2.5rem;height:2.5rem;border-radius:.25rem;line-height:2.5rem;display:none;" data-v-a81d141e data-v-a81d141e><svg t="1574745035067" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5404" class="icon" data-v-a81d141e><path d="M526.60727968 10.90185116a27.675 27.675 0 0 0-29.21455937 0c-131.36607665 82.28402758-218.69155461 228.01873535-218.69155402 394.07834331a462.20625001 462.20625001 0 0 0 5.36959153 69.94390903c1.00431239 6.55289093-0.34802892 13.13561351-3.76865779 18.80351572-32.63518765 54.11355614-51.75690182 118.55860487-51.7569018 187.94566865a371.06718723 371.06718723 0 0 0 11.50484808 91.98906777c6.53300375 25.50556257 41.68394495 28.14064038 52.69160883 4.22606766 17.37162448-37.73630017 42.14135425-72.50938081 72.80769204-103.21549295 2.18761121 3.04276886 4.15646224 6.24463696 6.40373557 9.22774369a1871.4375 1871.4375 0 0 0 140.04691725 5.34970492 1866.36093723 1866.36093723 0 0 0 140.04691723-5.34970492c2.24727335-2.98310674 4.21612437-6.18497483 6.3937923-9.2178004 30.66633723 30.70611158 55.4360664 65.4791928 72.80769147 103.21549355 11.00766384 23.91457269 46.15860503 21.27949489 52.69160879-4.22606768a371.15156223 371.15156223 0 0 0 11.514792-91.99901164c0-69.36717486-19.13165746-133.82216804-51.75690182-187.92578088-3.42062944-5.66790279-4.76302748-12.26056868-3.76865837-18.80351632a462.20625001 462.20625001 0 0 0 5.36959269-69.943909c-0.00994388-166.08943902-87.32547796-311.81420293-218.6915546-394.09823051zM605.93803103 357.87693858a93.93749974 93.93749974 0 1 1-187.89594924 6.1e-7 93.93749974 93.93749974 0 0 1 187.89594924-6.1e-7z" p-id="5405" data-v-a81d141e></path><path d="M429.50777625 765.63860547C429.50777625 803.39355007 466.44236686 1000.39046097 512.00932183 1000.39046097c45.56695499 0 82.4922232-197.00623328 82.5015456-234.7518555 0-37.75494459-36.9345906-68.35043303-82.4922232-68.34111062-45.57627738-0.00932239-82.52019037 30.59548842-82.51086798 68.34111062z" p-id="5406" data-v-a81d141e></path></svg></div></div></div>
<script src="/assets/js/app.394670a6.js" defer></script><script src="/assets/js/3.a4daf23b.js" defer></script><script src="/assets/js/1.564fda4f.js" defer></script><script src="/assets/js/15.3478b4f4.js" defer></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Schneider | 物联网知识库</title>
<meta name="description" content="物联网知识点分享">
<meta name="generator" content="VuePress 1.3.1">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<link rel="icon" href="/favicon.ico">
<link rel="preload" href="/assets/css/0.styles.2c51ae0d.css" as="style"><link rel="preload" href="/assets/js/app.394670a6.js" as="script"><link rel="preload" href="/assets/js/3.a4daf23b.js" as="script"><link rel="preload" href="/assets/js/1.564fda4f.js" as="script"><link rel="preload" href="/assets/js/16.0f9fce17.js" as="script"><link rel="prefetch" href="/assets/js/10.623acd6b.js"><link rel="prefetch" href="/assets/js/11.86f4dd7b.js"><link rel="prefetch" href="/assets/js/12.55cdf3a6.js"><link rel="prefetch" href="/assets/js/13.4fdfc039.js"><link rel="prefetch" href="/assets/js/14.87e817f5.js"><link rel="prefetch" href="/assets/js/15.3478b4f4.js"><link rel="prefetch" href="/assets/js/17.8a162a2f.js"><link rel="prefetch" href="/assets/js/18.9ab8d900.js"><link rel="prefetch" href="/assets/js/4.d089dd84.js"><link rel="prefetch" href="/assets/js/5.1adb0957.js"><link rel="prefetch" href="/assets/js/6.9e699f41.js"><link rel="prefetch" href="/assets/js/7.b3d344a0.js"><link rel="prefetch" href="/assets/js/8.6d98bd53.js"><link rel="prefetch" href="/assets/js/9.05f0eb0f.js">
<link rel="stylesheet" href="/assets/css/0.styles.2c51ae0d.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div><div class="theme-container" data-v-319dd33c><div data-v-319dd33c><div id="loader-wrapper" class="loading-wrapper" data-v-4b73742e data-v-319dd33c data-v-319dd33c><div class="loader-main" data-v-4b73742e><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div></div> <!----> <!----></div> <div class="password-shadow password-wrapper-out" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0>物联网知识库</h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div class="hide" data-v-319dd33c><header class="navbar" data-v-319dd33c><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><img src="/vuepress/panda.png" alt="物联网知识库" class="logo"> <span class="site-name">物联网知识库</span></a> <div class="links"><div class="color-picker"><a class="color-button"><i class="iconfont reco-color"></i></a> <div class="color-picker-menu" style="display:none;"><div class="mode-options"><h4 class="title">Choose mode</h4> <ul class="color-mode-options"><li class="dark">dark</li><li class="auto active">auto</li><li class="light">light</li></ul></div></div></div> <div class="search-box"><i class="iconfont reco-search"></i> <input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link router-link-exact-active router-link-active"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav></div></header> <div class="sidebar-mask" data-v-319dd33c></div> <aside class="sidebar" data-v-319dd33c><div class="personal-info-wrapper" data-v-6c8ffc9c><img src="/vuepress/panda.png" alt="author-avatar" class="personal-img" data-v-6c8ffc9c> <h3 class="name" data-v-6c8ffc9c>
Jaasdsa
</h3> <div class="num" data-v-6c8ffc9c><div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>文章</h6></div> <div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>标签</h6></div></div> <hr data-v-6c8ffc9c></div> <nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link router-link-exact-active router-link-active"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Schneider</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/views/plc/schneider/" class="active sidebar-link">Schneider</a></li></ul></section></li></ul> </aside> <div class="password-shadow password-wrapper-in" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0></h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div data-v-319dd33c><main class="page"><div class="page-title" style="display:none;"><h1>Schneider</h1> <hr> <div data-v-484a899e><i class="iconfont reco-account" data-v-484a899e><span data-v-484a899e>Jaasdsa</span></i> <!----> <i class="iconfont reco-eye" data-v-484a899e><span id="/views/plc/schneider/" data-flag-title="Your Article Title" class="leancloud-visitors" data-v-484a899e><a class="leancloud-visitors-count" style="font-size:.9rem;font-weight:normal;color:#999;"></a></span></i> <!----></div></div> <div class="theme-reco-content content__default" style="display:none;"><h1 id="schneider"><a href="#schneider" class="header-anchor">#</a> Schneider</h1></div> <footer class="page-edit" style="display:none;"><div class="edit-link"><a href="https://g.civnet.cn:8443/doc/IoTDoc/edit/master/docs/views/plc/schneider/README.md" target="_blank" rel="noopener noreferrer">在 GitHub 上编辑此页!</a> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></div> <div class="last-updated"><span class="prefix">最后更新时间: </span> <span class="time">3/16/2020, 8:54:33 PM</span></div></footer> <!----></main> <!----> <div style="display:none;" data-v-319dd33c data-v-319dd33c><div class="comments-wrapper" data-v-319dd33c><div class="valine-wrapper"><div id="valine"></div></div></div></div></div></div></div></div></div><div class="global-ui"><div class="back-to-ceiling" style="right:1rem;bottom:6rem;width:2.5rem;height:2.5rem;border-radius:.25rem;line-height:2.5rem;display:none;" data-v-a81d141e data-v-a81d141e><svg t="1574745035067" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5404" class="icon" data-v-a81d141e><path d="M526.60727968 10.90185116a27.675 27.675 0 0 0-29.21455937 0c-131.36607665 82.28402758-218.69155461 228.01873535-218.69155402 394.07834331a462.20625001 462.20625001 0 0 0 5.36959153 69.94390903c1.00431239 6.55289093-0.34802892 13.13561351-3.76865779 18.80351572-32.63518765 54.11355614-51.75690182 118.55860487-51.7569018 187.94566865a371.06718723 371.06718723 0 0 0 11.50484808 91.98906777c6.53300375 25.50556257 41.68394495 28.14064038 52.69160883 4.22606766 17.37162448-37.73630017 42.14135425-72.50938081 72.80769204-103.21549295 2.18761121 3.04276886 4.15646224 6.24463696 6.40373557 9.22774369a1871.4375 1871.4375 0 0 0 140.04691725 5.34970492 1866.36093723 1866.36093723 0 0 0 140.04691723-5.34970492c2.24727335-2.98310674 4.21612437-6.18497483 6.3937923-9.2178004 30.66633723 30.70611158 55.4360664 65.4791928 72.80769147 103.21549355 11.00766384 23.91457269 46.15860503 21.27949489 52.69160879-4.22606768a371.15156223 371.15156223 0 0 0 11.514792-91.99901164c0-69.36717486-19.13165746-133.82216804-51.75690182-187.92578088-3.42062944-5.66790279-4.76302748-12.26056868-3.76865837-18.80351632a462.20625001 462.20625001 0 0 0 5.36959269-69.943909c-0.00994388-166.08943902-87.32547796-311.81420293-218.6915546-394.09823051zM605.93803103 357.87693858a93.93749974 93.93749974 0 1 1-187.89594924 6.1e-7 93.93749974 93.93749974 0 0 1 187.89594924-6.1e-7z" p-id="5405" data-v-a81d141e></path><path d="M429.50777625 765.63860547C429.50777625 803.39355007 466.44236686 1000.39046097 512.00932183 1000.39046097c45.56695499 0 82.4922232-197.00623328 82.5015456-234.7518555 0-37.75494459-36.9345906-68.35043303-82.4922232-68.34111062-45.57627738-0.00932239-82.52019037 30.59548842-82.51086798 68.34111062z" p-id="5406" data-v-a81d141e></path></svg></div></div></div>
<script src="/assets/js/app.394670a6.js" defer></script><script src="/assets/js/3.a4daf23b.js" defer></script><script src="/assets/js/1.564fda4f.js" defer></script><script src="/assets/js/16.0f9fce17.js" defer></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>siemens | 物联网知识库</title>
<meta name="description" content="物联网知识点分享">
<meta name="generator" content="VuePress 1.3.1">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<link rel="icon" href="/favicon.ico">
<link rel="preload" href="/assets/css/0.styles.2c51ae0d.css" as="style"><link rel="preload" href="/assets/js/app.394670a6.js" as="script"><link rel="preload" href="/assets/js/3.a4daf23b.js" as="script"><link rel="preload" href="/assets/js/1.564fda4f.js" as="script"><link rel="preload" href="/assets/js/17.8a162a2f.js" as="script"><link rel="prefetch" href="/assets/js/10.623acd6b.js"><link rel="prefetch" href="/assets/js/11.86f4dd7b.js"><link rel="prefetch" href="/assets/js/12.55cdf3a6.js"><link rel="prefetch" href="/assets/js/13.4fdfc039.js"><link rel="prefetch" href="/assets/js/14.87e817f5.js"><link rel="prefetch" href="/assets/js/15.3478b4f4.js"><link rel="prefetch" href="/assets/js/16.0f9fce17.js"><link rel="prefetch" href="/assets/js/18.9ab8d900.js"><link rel="prefetch" href="/assets/js/4.d089dd84.js"><link rel="prefetch" href="/assets/js/5.1adb0957.js"><link rel="prefetch" href="/assets/js/6.9e699f41.js"><link rel="prefetch" href="/assets/js/7.b3d344a0.js"><link rel="prefetch" href="/assets/js/8.6d98bd53.js"><link rel="prefetch" href="/assets/js/9.05f0eb0f.js">
<link rel="stylesheet" href="/assets/css/0.styles.2c51ae0d.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div><div class="theme-container" data-v-319dd33c><div data-v-319dd33c><div id="loader-wrapper" class="loading-wrapper" data-v-4b73742e data-v-319dd33c data-v-319dd33c><div class="loader-main" data-v-4b73742e><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div><div data-v-4b73742e></div></div> <!----> <!----></div> <div class="password-shadow password-wrapper-out" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0>物联网知识库</h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div class="hide" data-v-319dd33c><header class="navbar" data-v-319dd33c><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><img src="/vuepress/panda.png" alt="物联网知识库" class="logo"> <span class="site-name">物联网知识库</span></a> <div class="links"><div class="color-picker"><a class="color-button"><i class="iconfont reco-color"></i></a> <div class="color-picker-menu" style="display:none;"><div class="mode-options"><h4 class="title">Choose mode</h4> <ul class="color-mode-options"><li class="dark">dark</li><li class="auto active">auto</li><li class="light">light</li></ul></div></div></div> <div class="search-box"><i class="iconfont reco-search"></i> <input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link router-link-exact-active router-link-active"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav></div></header> <div class="sidebar-mask" data-v-319dd33c></div> <aside class="sidebar" data-v-319dd33c><div class="personal-info-wrapper" data-v-6c8ffc9c><img src="/vuepress/panda.png" alt="author-avatar" class="personal-img" data-v-6c8ffc9c> <h3 class="name" data-v-6c8ffc9c>
Jaasdsa
</h3> <div class="num" data-v-6c8ffc9c><div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>文章</h6></div> <div data-v-6c8ffc9c><h3 data-v-6c8ffc9c>0</h3> <h6 data-v-6c8ffc9c>标签</h6></div></div> <hr data-v-6c8ffc9c></div> <nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont reco-home"></i>
主页
</a></div><div class="nav-item"><a href="/views/gateway/" class="nav-link"><i class="iconfont reco-category"></i>
边缘网关
</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title"><i class="iconfont reco-tag"></i>
PLC
</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/views/plc/siemens/" class="nav-link router-link-exact-active router-link-active"><i class="iconfont undefined"></i>
Siemens
</a></li><li class="dropdown-item"><!----> <a href="/views/plc/schneider/" class="nav-link"><i class="iconfont undefined"></i>
Schneider
</a></li></ul></div></div><div class="nav-item"><a href="/views/iot/" class="nav-link"><i class="iconfont reco-api"></i>
物联网
</a></div> <a href="https://g.civnet.cn:8443/doc/IoTDoc" target="_blank" rel="noopener noreferrer" class="repo-link"><i class="iconfont reco-查看源码"></i>
查看源码
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Siemens</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/views/plc/siemens/" class="active sidebar-link">siemens</a></li></ul></section></li></ul> </aside> <div class="password-shadow password-wrapper-in" style="display:none;" data-v-1e2a0cc0 data-v-319dd33c><h3 class="title" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0></h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><input type="password" value="" data-v-1e2a0cc0> <span data-v-1e2a0cc0>Konck! Knock!</span> <button data-v-1e2a0cc0>OK</button></label> <div class="footer" style="display:none;" data-v-1e2a0cc0 data-v-1e2a0cc0><span data-v-1e2a0cc0><i class="iconfont reco-theme" data-v-1e2a0cc0></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-1e2a0cc0>vuePress-theme-reco</a></span> <span data-v-1e2a0cc0><i class="iconfont reco-copyright" data-v-1e2a0cc0></i> <a data-v-1e2a0cc0><span data-v-1e2a0cc0>Jaasdsa</span>
  
<span data-v-1e2a0cc0>2020 - </span>
2020
</a></span></div></div> <div data-v-319dd33c><main class="page"><div class="page-title" style="display:none;"><h1>siemens</h1> <hr> <div data-v-484a899e><i class="iconfont reco-account" data-v-484a899e><span data-v-484a899e>Jaasdsa</span></i> <!----> <i class="iconfont reco-eye" data-v-484a899e><span id="/views/plc/siemens/" data-flag-title="Your Article Title" class="leancloud-visitors" data-v-484a899e><a class="leancloud-visitors-count" style="font-size:.9rem;font-weight:normal;color:#999;"></a></span></i> <!----></div></div> <div class="theme-reco-content content__default" style="display:none;"><h1 id="siemens"><a href="#siemens" class="header-anchor">#</a> siemens</h1></div> <footer class="page-edit" style="display:none;"><div class="edit-link"><a href="https://g.civnet.cn:8443/doc/IoTDoc/edit/master/docs/views/plc/siemens/README.md" target="_blank" rel="noopener noreferrer">在 GitHub 上编辑此页!</a> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></div> <div class="last-updated"><span class="prefix">最后更新时间: </span> <span class="time">3/17/2020, 3:37:46 PM</span></div></footer> <!----></main> <!----> <div style="display:none;" data-v-319dd33c data-v-319dd33c><div class="comments-wrapper" data-v-319dd33c><div class="valine-wrapper"><div id="valine"></div></div></div></div></div></div></div></div></div><div class="global-ui"><div class="back-to-ceiling" style="right:1rem;bottom:6rem;width:2.5rem;height:2.5rem;border-radius:.25rem;line-height:2.5rem;display:none;" data-v-a81d141e data-v-a81d141e><svg t="1574745035067" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5404" class="icon" data-v-a81d141e><path d="M526.60727968 10.90185116a27.675 27.675 0 0 0-29.21455937 0c-131.36607665 82.28402758-218.69155461 228.01873535-218.69155402 394.07834331a462.20625001 462.20625001 0 0 0 5.36959153 69.94390903c1.00431239 6.55289093-0.34802892 13.13561351-3.76865779 18.80351572-32.63518765 54.11355614-51.75690182 118.55860487-51.7569018 187.94566865a371.06718723 371.06718723 0 0 0 11.50484808 91.98906777c6.53300375 25.50556257 41.68394495 28.14064038 52.69160883 4.22606766 17.37162448-37.73630017 42.14135425-72.50938081 72.80769204-103.21549295 2.18761121 3.04276886 4.15646224 6.24463696 6.40373557 9.22774369a1871.4375 1871.4375 0 0 0 140.04691725 5.34970492 1866.36093723 1866.36093723 0 0 0 140.04691723-5.34970492c2.24727335-2.98310674 4.21612437-6.18497483 6.3937923-9.2178004 30.66633723 30.70611158 55.4360664 65.4791928 72.80769147 103.21549355 11.00766384 23.91457269 46.15860503 21.27949489 52.69160879-4.22606768a371.15156223 371.15156223 0 0 0 11.514792-91.99901164c0-69.36717486-19.13165746-133.82216804-51.75690182-187.92578088-3.42062944-5.66790279-4.76302748-12.26056868-3.76865837-18.80351632a462.20625001 462.20625001 0 0 0 5.36959269-69.943909c-0.00994388-166.08943902-87.32547796-311.81420293-218.6915546-394.09823051zM605.93803103 357.87693858a93.93749974 93.93749974 0 1 1-187.89594924 6.1e-7 93.93749974 93.93749974 0 0 1 187.89594924-6.1e-7z" p-id="5405" data-v-a81d141e></path><path d="M429.50777625 765.63860547C429.50777625 803.39355007 466.44236686 1000.39046097 512.00932183 1000.39046097c45.56695499 0 82.4922232-197.00623328 82.5015456-234.7518555 0-37.75494459-36.9345906-68.35043303-82.4922232-68.34111062-45.57627738-0.00932239-82.52019037 30.59548842-82.51086798 68.34111062z" p-id="5406" data-v-a81d141e></path></svg></div></div></div>
<script src="/assets/js/app.394670a6.js" defer></script><script src="/assets/js/3.a4daf23b.js" defer></script><script src="/assets/js/1.564fda4f.js" defer></script><script src="/assets/js/17.8a162a2f.js" defer></script>
</body>
</html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment