[{"data":1,"prerenderedAt":410},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fdocs\u002Fcamera\u002Ftags":146,"docs-\u002Fdocs\u002Fcamera\u002Ftags-surround":405},[4],{"title":5,"path":6,"stem":7,"children":8},"Docs","\u002Fdocs","docs",[9,12,80,124],{"title":10,"path":6,"stem":11},"Overview","docs\u002Findex",{"title":13,"path":14,"stem":15,"children":16},"Camera app","\u002Fdocs\u002Fcamera","docs\u002F1.camera\u002Findex",[17,18,22,26,48,52,56,60,64,68,72,76],{"title":10,"path":14,"stem":15},{"title":19,"path":20,"stem":21},"Requirements","\u002Fdocs\u002Fcamera\u002Frequirements","docs\u002F1.camera\u002F01.requirements",{"title":23,"path":24,"stem":25},"Install","\u002Fdocs\u002Fcamera\u002Finstall","docs\u002F1.camera\u002F02.install",{"title":27,"path":28,"stem":29,"children":30},"Connections","\u002Fdocs\u002Fcamera\u002Fconnections","docs\u002F1.camera\u002F03.connections\u002Findex",[31,32,36,40,44],{"title":27,"path":28,"stem":29},{"title":33,"path":34,"stem":35},"Allen-Bradley","\u002Fdocs\u002Fcamera\u002Fconnections\u002Fallen-bradley","docs\u002F1.camera\u002F03.connections\u002F1.allen-bradley",{"title":37,"path":38,"stem":39},"ABB robot","\u002Fdocs\u002Fcamera\u002Fconnections\u002Fabb-robot","docs\u002F1.camera\u002F03.connections\u002F2.abb-robot",{"title":41,"path":42,"stem":43},"Camera events","\u002Fdocs\u002Fcamera\u002Fconnections\u002Fcamera-events","docs\u002F1.camera\u002F03.connections\u002F3.camera-events",{"title":45,"path":46,"stem":47},"Demo and diagnostics","\u002Fdocs\u002Fcamera\u002Fconnections\u002Fdemo-and-diagnostics","docs\u002F1.camera\u002F03.connections\u002F4.demo-and-diagnostics",{"title":49,"path":50,"stem":51},"Tags","\u002Fdocs\u002Fcamera\u002Ftags","docs\u002F1.camera\u002F04.tags",{"title":53,"path":54,"stem":55},"Overlay","\u002Fdocs\u002Fcamera\u002Foverlay","docs\u002F1.camera\u002F05.overlay",{"title":57,"path":58,"stem":59},"History and charts","\u002Fdocs\u002Fcamera\u002Fhistory-and-charts","docs\u002F1.camera\u002F06.history-and-charts",{"title":61,"path":62,"stem":63},"DataBorder","\u002Fdocs\u002Fcamera\u002Fdataborder","docs\u002F1.camera\u002F07.databorder",{"title":65,"path":66,"stem":67},"Recording","\u002Fdocs\u002Fcamera\u002Frecording","docs\u002F1.camera\u002F08.recording",{"title":69,"path":70,"stem":71},"Performance","\u002Fdocs\u002Fcamera\u002Fperformance","docs\u002F1.camera\u002F09.performance",{"title":73,"path":74,"stem":75},"Status and troubleshooting","\u002Fdocs\u002Fcamera\u002Fstatus-and-troubleshooting","docs\u002F1.camera\u002F10.status-and-troubleshooting",{"title":77,"path":78,"stem":79},"Export and import","\u002Fdocs\u002Fcamera\u002Fexport-import","docs\u002F1.camera\u002F11.export-import",{"title":81,"path":82,"stem":83,"children":84},"Decoder","\u002Fdocs\u002Fdecoder","docs\u002F2.decoder\u002Findex",[85,86,89,93,96,100,104,108,112,116,120],{"title":10,"path":82,"stem":83},{"title":23,"path":87,"stem":88},"\u002Fdocs\u002Fdecoder\u002Finstall","docs\u002F2.decoder\u002F01.install",{"title":90,"path":91,"stem":92},"Clips","\u002Fdocs\u002Fdecoder\u002Fopen-clips","docs\u002F2.decoder\u002F02.open-clips",{"title":65,"path":94,"stem":95},"\u002Fdocs\u002Fdecoder\u002Frecord","docs\u002F2.decoder\u002F03.record",{"title":97,"path":98,"stem":99},"Live","\u002Fdocs\u002Fdecoder\u002Flive","docs\u002F2.decoder\u002F04.live",{"title":101,"path":102,"stem":103},"Timeline","\u002Fdocs\u002Fdecoder\u002Ftimeline","docs\u002F2.decoder\u002F05.timeline",{"title":105,"path":106,"stem":107},"Decoded data","\u002Fdocs\u002Fdecoder\u002Fdecoded-data","docs\u002F2.decoder\u002F06.decoded-data",{"title":109,"path":110,"stem":111},"Signal view","\u002Fdocs\u002Fdecoder\u002Fsignal-view","docs\u002F2.decoder\u002F07.signal-view",{"title":113,"path":114,"stem":115},"Extracting clips","\u002Fdocs\u002Fdecoder\u002Fclips","docs\u002F2.decoder\u002F08.clips",{"title":117,"path":118,"stem":119},"Verification","\u002Fdocs\u002Fdecoder\u002Fverify","docs\u002F2.decoder\u002F09.verify",{"title":121,"path":122,"stem":123},"Troubleshooting","\u002Fdocs\u002Fdecoder\u002Ftroubleshooting","docs\u002F2.decoder\u002F10.troubleshooting",{"title":125,"path":126,"stem":127,"children":128,"page":145},"Reference","\u002Fdocs\u002Freference","docs\u002F3.reference",[129,133,137,141],{"title":130,"path":131,"stem":132},"Configuration settings","\u002Fdocs\u002Freference\u002Fconfiguration","docs\u002F3.reference\u002F1.configuration",{"title":134,"path":135,"stem":136},"Compatibility","\u002Fdocs\u002Freference\u002Fcompatibility","docs\u002F3.reference\u002F2.compatibility",{"title":138,"path":139,"stem":140},"Release notes","\u002Fdocs\u002Freference\u002Frelease-notes","docs\u002F3.reference\u002F3.release-notes",{"title":142,"path":143,"stem":144},"Glossary","\u002Fdocs\u002Freference\u002Fglossary","docs\u002F3.reference\u002F4.glossary",false,{"id":147,"title":49,"body":148,"description":398,"extension":399,"meta":400,"navigation":401,"path":50,"seo":402,"source":403,"stem":51,"__hash__":404},"docs\u002Fdocs\u002F1.camera\u002F04.tags.md",{"type":149,"value":150,"toc":385},"minimark",[151,160,165,171,190,194,202,205,281,285,292,305,308,311,335,340,347,351,361,364,368,371,375,382],[152,153,154,155,159],"p",{},"Open ",[156,157,158],"strong",{},"Tag library"," from the navigation bar. A tag is one value that the camera reads from a connection, or computes from other tags. Tags are what you place on the overlay and in the DataBorder.",[161,162,164],"h2",{"id":163},"add-tags-by-browsing","Add tags by browsing",[166,167],"shot",{"alt":168,"caption":169,"name":170},"The tag library: every tag with its connection, address, type, where it is used, its value and its quality.","The tag library.","camera-tags",[152,172,173,174,177,178,181,182,185,186,189],{},"Choose ",[156,175,176],{},"Browse"," next to a Logix or camera-events connection, or ",[156,179,180],{},"Catalog"," next to a robot, demo or diagnostics connection. The list shows what the source offers: the controller's tags, the camera's event tree, or the source's signal catalog. Choose ",[156,183,184],{},"Add"," on each tag you want. What each source lists is described on its page under ",[187,188,27],"a",{"href":28},".",[161,191,193],{"id":192},"add-tags-by-hand","Add tags by hand",[152,195,173,196,199,200,189],{},[156,197,198],{},"Add tag"," and enter the address yourself. The address form depends on the source and is described on its page, for example the controller tag name for a Logix PLC. See ",[187,201,33],{"href":34},[152,203,204],{},"Each tag has the following settings.",[206,207,208,221],"table",{},[209,210,211],"thead",{},[212,213,214,218],"tr",{},[215,216,217],"th",{},"Setting",[215,219,220],{},"Description",[222,223,224,233,241,249,265],"tbody",{},[212,225,226,230],{},[227,228,229],"td",{},"Name",[227,231,232],{},"The display name, up to 32 characters. It is also the record name in the DataBorder, where only the first 16 characters are used.",[212,234,235,238],{},[227,236,237],{},"Data type",[227,239,240],{},"The type must match the controller's type. The choices are bool, the integer sizes, real, double, and string.",[212,242,243,246],{},[227,244,245],{},"Scale",[227,247,248],{},"An optional factor and offset are applied to the raw value before it is displayed.",[212,250,251,254],{},[227,252,253],{},"Format",[227,255,256,257,261,262,189],{},"The format sets the number of decimals, the units, and an optional template such as ",[258,259,260],"code",{},"{value} {units}"," or ",[258,263,264],{},"{name}: {value}",[212,266,267,270],{},[227,268,269],{},"Kind",[227,271,272,273,276,277,280],{},"A tag is either a ",[156,274,275],{},"measurement",", which is a number that can be charted, or a ",[156,278,279],{},"state",", which is a number that means a machine state.",[161,282,284],{"id":283},"state-tags","State tags",[152,286,287,288,291],{},"A state tag is a number whose values have meanings, for example 1 for Running, 2 for Blocked and 3 for Down. Marking a tag as a state and giving it a ",[156,289,290],{},"state map"," has three effects:",[293,294,295,299,302],"ul",{},[296,297,298],"li",{},"Every element that shows the tag uses the label and the color instead of the number.",[296,300,301],{},"The camera stores the tag's history as a log of transitions rather than as buckets.",[296,303,304],{},"The state charts, and the tag's history in the DataBorder, become available.",[152,306,307],{},"For each value in the map, set a label, a color and optionally a category. Also set a default label and color for values that are not in the map.",[152,309,310],{},"There are several ways to fill the map faster:",[293,312,313,319,325],{},[296,314,315,318],{},[156,316,317],{},"Add observed values"," lists every value the camera has seen for this tag in the last day and adds a row for each one.",[296,320,321,324],{},[156,322,323],{},"Learning mode"," keeps adding rows for new values as they appear, about once a minute, with colors assigned automatically. Turn it on while the machine runs through its states, then turn it off and name the rows.",[296,326,327,330,331,334],{},[156,328,329],{},"Copy template"," and ",[156,332,333],{},"Paste map"," move a state map between tags, or out to a spreadsheet and back. Pasting merges by value. Existing rows are updated, new rows are added, and nothing is deleted.",[336,337,339],"h3",{"id":338},"categories","Categories",[152,341,342,343,346],{},"Categories group states across machines. The default categories are Productive, Idle, Blocked, Blocked upstream, Blocked downstream, Down and Maintenance, and they can be changed under ",[156,344,345],{},"Settings",". A state map can follow the global categories, define its own, or use none. Categories are what allow a donut chart or an availability gauge to show how much of the hour was productive without knowing each machine's own state names.",[161,348,350],{"id":349},"derived-states","Derived states",[152,352,173,353,356,357,360],{},[156,354,355],{},"Add derived state"," to create a state that no single tag carries. A derived state is a list of rules that are evaluated from top to bottom. Each rule has the form \"if this tag compares in this way with this value, then use this state\". The first rule that matches wins, and an ",[156,358,359],{},"else"," state covers everything that does not match. Rules can use any measurement or state tag on any connection. Derived tags are not polled. They update whenever their inputs do.",[152,362,363],{},"A new derived state starts with two states, Running and Faulted, and a default state of Unknown. You can rename all of them.",[161,365,367],{"id":366},"strings","Strings",[152,369,370],{},"A tag with the string data type shows its text on the overlay, and the camera stores it as a log of changes rather than as buckets. In the DataBorder, a string rides in the carousel, so it takes a moment longer to appear in a decoded clip than a number does.",[161,372,374],{"id":373},"polling-cost","Polling cost",[152,376,377,378,381],{},"The ",[156,379,380],{},"Used by"," column in the library shows whether a tag is on the overlay, in the stream, used by a derived state, or unused. Only used tags are polled and stored. Adding tags to the library costs nothing. Using them is what costs polling time and history space.",[152,383,384],{},"Deleting a tag warns you about the elements, records and derived states that use it, and removes those references.",{"title":386,"searchDepth":387,"depth":387,"links":388},"",3,[389,391,392,395,396,397],{"id":163,"depth":390,"text":164},2,{"id":192,"depth":390,"text":193},{"id":283,"depth":390,"text":284,"children":393},[394],{"id":338,"depth":387,"text":339},{"id":349,"depth":390,"text":350},{"id":366,"depth":390,"text":367},{"id":373,"depth":390,"text":374},"Choosing and configuring tag data.","md",{},true,{"title":49,"description":398},null,"ebjnb4fg4cOWYg0sNvtCJn-ojttMcStwbheLQv_9NgY",[406,408],{"title":45,"path":46,"stem":47,"description":407,"children":-1},"Building layouts without a controller, and reading the camera's own health.",{"title":53,"path":54,"stem":55,"description":409,"children":-1},"Placing values, indicators, tables and charts on the stream.",1788953751275]