[
    {
        "id": "eac6be20859065d3",
        "type": "tab",
        "label": "NC Program list/editor",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "607359ae64cfd52b",
        "type": "tab",
        "label": "mode switch flow / Configuration ",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "060ec4e509b093af",
        "type": "tab",
        "label": "ReadLine",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "e7734a74f031c3a8",
        "type": "tab",
        "label": "HMI-Pos",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "6c5403873270dadb",
        "type": "tab",
        "label": "HMI-Operate area",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "442f82fa.b1dd6c",
        "type": "subflow",
        "name": "Folder Reader",
        "info": "\n# Inputs\nIf a msg.path or a msg.recursive is sent, the msg will be used.\notherwise the node options will be used\n## path\nmsg.path or the path option assigns the directory to read\n## recursive\nmsg.recursive or the recursive option will indicate if a search should also be made in the folders that are found. If false, only the files in the specified folder are obtained\n## result\nAs a result, an array with the stats of all the files is obtained\n\n# (i) This node needs FS \n(is assigned on Funcion \"Read Folder\", first line, you can change it)\n",
        "category": "",
        "in": [
            {
                "x": 120,
                "y": 120,
                "wires": [
                    {
                        "id": "f7d97639.3a3488"
                    }
                ]
            }
        ],
        "out": [
            {
                "x": 800,
                "y": 120,
                "wires": [
                    {
                        "id": "dc924f08.6c93e",
                        "port": 0
                    }
                ]
            }
        ],
        "env": [
            {
                "name": "setFolder",
                "type": "str",
                "value": "",
                "ui": {
                    "icon": "font-awesome/fa-file",
                    "label": {
                        "en-US": "Folder"
                    },
                    "type": "input",
                    "opts": {
                        "types": [
                            "str",
                            "env"
                        ]
                    }
                }
            },
            {
                "name": "setRecursive",
                "type": "bool",
                "value": "true",
                "ui": {
                    "icon": "font-awesome/fa-repeat",
                    "label": {
                        "en-US": "Recursive"
                    },
                    "type": "input",
                    "opts": {
                        "types": [
                            "bool"
                        ]
                    }
                }
            }
        ],
        "meta": {},
        "color": "#DDAA99",
        "status": {
            "x": 160,
            "y": 30,
            "wires": []
        }
    },
    {
        "id": "35cd24c890bd683f",
        "type": "group",
        "z": "607359ae64cfd52b",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "4b590f6f7b865d11",
            "78cd0a46751cf60c",
            "a6b7204e0820a0e6",
            "b6cf81d50742d0f4",
            "4a115f30878fcbbb",
            "3df9beb4d3779863",
            "9877422be43342ee",
            "650fdd471a355c3a",
            "c8c3296d05ed1251"
        ],
        "x": 114,
        "y": 19,
        "w": 1472,
        "h": 302
    },
    {
        "id": "8558b6572a9683a7",
        "type": "group",
        "z": "e7734a74f031c3a8",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "60a617de51b30d6e",
            "5ed17be5f13797dd",
            "43d1e5131c8adb43",
            "028bb2ee78bd458a",
            "72c7987c62f545ac",
            "f61c97a085687e51",
            "638a6a129a79fea3",
            "0ea69a5daf11d007",
            "bdd33c3a497a913d",
            "7b617ddadd7dd6c2",
            "5e47db9055712cda",
            "24271716a68a1631",
            "07a8e270278415a1",
            "68a6ecdfe600a956",
            "32b2b12b6b472039",
            "ac57ba75c40f4fb4"
        ],
        "x": 894,
        "y": 3739,
        "w": 1312,
        "h": 482
    },
    {
        "id": "54f0b75734ba2c78",
        "type": "group",
        "z": "e7734a74f031c3a8",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "67e59e8c7f51bd5b",
            "5ca340fca2eefe18",
            "dade02e14790fe42",
            "70fa60eee5856bb1",
            "4433dfdba6bff090",
            "142689b6be094f75",
            "4f6164d08dfad154",
            "8e5cf893bcfc05ee",
            "ef6bd5f218b6cc56",
            "f93ad340590acb1a"
        ],
        "x": 914,
        "y": 2219,
        "w": 2072,
        "h": 1502
    },
    {
        "id": "adb95d965ba4df87",
        "type": "group",
        "z": "e7734a74f031c3a8",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "d4a0ec5982766f4b",
            "867b711a15551bbd",
            "c3c46fa818a06f47",
            "5d081fa2df2580f7"
        ],
        "x": 914,
        "y": 4459,
        "w": 852,
        "h": 142
    },
    {
        "id": "696cb6d91aa73313",
        "type": "group",
        "z": "e7734a74f031c3a8",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "c5c9aedb5da431ed",
            "a6a1f2f27e37f98b",
            "89db7582fbaa3db5",
            "5c2c75c5e19a9294"
        ],
        "x": 914,
        "y": 4619,
        "w": 852,
        "h": 142
    },
    {
        "id": "12c97d1bc9abe26f",
        "type": "group",
        "z": "6c5403873270dadb",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "ed3487bb04481a59",
            "de5a866f30883982",
            "8b9946cba241e429",
            "56e78bb320af2e9b",
            "173144ebd72c33d8",
            "43b72cddf8c3dcc3",
            "0e251925121a9b09",
            "e55e4bf70f898f5c",
            "44ef9597bcb6bcc0",
            "6572e030af19993e",
            "3fc3837222d1c375",
            "ee40ccd3f7f9ddd3",
            "bec070de3a86f1b0",
            "0b59fa5674693850",
            "0d698e6f1a4bd72b",
            "09c8f309ad4f4c39",
            "1b20b10fba93f146",
            "b5effce.db9fd",
            "efa89bd3d50d6f25",
            "64d6212b.ba6cd"
        ],
        "x": 294,
        "y": 1619,
        "w": 2612,
        "h": 262
    },
    {
        "id": "c68da40e82c47287",
        "type": "group",
        "z": "6c5403873270dadb",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "fbc665f343ea3ef9",
            "74c8f016752894fe",
            "f835f7a90b70374e",
            "0ce012dda44a09e9"
        ],
        "x": 294,
        "y": 2159,
        "w": 1092,
        "h": 82
    },
    {
        "id": "a2fb25ba4b4b8519",
        "type": "group",
        "z": "6c5403873270dadb",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "8a550f126011d839",
            "9c2919366feb6452",
            "1482ccecf75b8385",
            "ef621d31bbb3e5d4"
        ],
        "x": 274,
        "y": 1939,
        "w": 1372,
        "h": 82
    },
    {
        "id": "314676e73a5c515f",
        "type": "group",
        "z": "6c5403873270dadb",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "85b1cd8ba73f202f",
            "f3fa7109052763f9",
            "3263fca6f6cdd85d",
            "468cf0bf8c4f65ad"
        ],
        "x": 1894,
        "y": 1439,
        "w": 592,
        "h": 122
    },
    {
        "id": "deb087fe2bde0111",
        "type": "group",
        "z": "6c5403873270dadb",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "c334bc335bbc9dd3",
            "0d3971242b22f895",
            "cf103355713b4949",
            "fd10ccfbaf1d2e35"
        ],
        "x": 2254,
        "y": 1939,
        "w": 592,
        "h": 122
    },
    {
        "id": "7eefdf97e0efef0b",
        "type": "group",
        "z": "6c5403873270dadb",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "f43b95fb56baecba",
            "2de63f505445dcf8",
            "a67b8680b8d24197",
            "259aaea926f0d104"
        ],
        "x": 874,
        "y": 459,
        "w": 392,
        "h": 222
    },
    {
        "id": "29ed75cf8bc22d23",
        "type": "group",
        "z": "6c5403873270dadb",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "f893820fd1a066a7",
            "45b4263940e6b9f6",
            "1190a490a9969f2b",
            "c11595022e6bb3ce",
            "37f1d1639ef24637",
            "82332e7371476676",
            "acf4de5c072e7fd3",
            "0c13851fab7f3727",
            "30dfdd33fc7524e0",
            "8c8597e0b6cb4bb2",
            "0d092ef8b6bdcad0",
            "e1a8fb6946a5e0fc",
            "c063056f7877a72c",
            "4ffc7cd98d865793",
            "a8deccf0c1cd6550",
            "b20cba95b105ebee",
            "89931993f27a365a",
            "03fba64bea67eeae",
            "9ae1414dfb5577e5",
            "6808971ce754f7cf",
            "198c3392b7aa75b5",
            "0c426d25ad443578",
            "189757748f718794",
            "d5c516c211e34c92",
            "59334614db543e44",
            "4cd6b13dfd29af59",
            "a3b09936fe7dcef2",
            "4983e94c908242eb",
            "50a4bae93e221a2f",
            "4e2536873071fe7b",
            "8fa42305139e532c",
            "4da929250d86c25f",
            "8e4234849d1e2123",
            "24e389ee88bbd972",
            "c80e445464ed0695",
            "fc0eb288e6123572",
            "cfadf4ca7d8214a9",
            "034c9697aed4789d"
        ],
        "x": 1274,
        "y": 99,
        "w": 2132,
        "h": 762
    },
    {
        "id": "99a10a74734987e6",
        "type": "group",
        "z": "6c5403873270dadb",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "54da50ff61989cd8",
            "78fb3ccf7e5b1b6f",
            "b605850cd2ee6e58",
            "a2f2dc189cb546bd",
            "9c67a78431a94e50",
            "96fd771a255d2b86",
            "20c9c69fbb7a04c2",
            "b86c8cbac0ea0541",
            "737aa2898a900e4c",
            "4153812df8513cdf",
            "a5e9a47621150d15",
            "e19ab74dfe33a46e",
            "5626d889ee73e78f",
            "45f03ffe99721058",
            "f3b153eb1ed5f211",
            "9bc2174620441c09",
            "06640683ab1dc24d",
            "a4f11a328a56021f",
            "7357b4773ce98413",
            "44395687a5d14068",
            "af245cae1c1d173a",
            "07f307d6da1e2ff0",
            "e5a3bb19f4e28ceb",
            "a4f42f2d98ab4717"
        ],
        "x": 314,
        "y": 819,
        "w": 2492,
        "h": 568
    },
    {
        "id": "387989b8d680bfcd",
        "type": "group",
        "z": "e7734a74f031c3a8",
        "name": "",
        "style": {
            "label": true
        },
        "nodes": [
            "7dfd1000571b5f39",
            "707e38070d887b65",
            "303a899cf6724ff8",
            "8bbd636bc3f6aa30",
            "e119819bdfd2f98a",
            "df5cfc5aaa5681a0",
            "e542608cc06a390f"
        ],
        "x": 914,
        "y": 4799,
        "w": 1372,
        "h": 322
    },
    {
        "id": "5502ea8d8aca7d14",
        "type": "group",
        "z": "e7734a74f031c3a8",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "fa7de706b4a7b899",
            "3226f4f1a64ff838",
            "f8eb14ae358a11e3",
            "263dedd3d16eb6d1",
            "df43128c8de43dea",
            "7ae9d99f33c8e354",
            "e9db76d7732febf5",
            "aefb4cba8b13295d",
            "5a3b5453efb67c38",
            "60bbd927a052b031"
        ],
        "x": 914,
        "y": 4239,
        "w": 1492,
        "h": 202
    },
    {
        "id": "0db516f2915d9ec2",
        "type": "group",
        "z": "e7734a74f031c3a8",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "50baaeadb2022688",
            "268e6c94910c9964",
            "4f384667d8aa1457",
            "370c54798d816693",
            "812bcedd5d87d40d",
            "f6342335823dcdfa",
            "324d295b567dc1cd",
            "aa4072a78b3a596a",
            "e234a13e1788caf7",
            "baa6382d924b08c9",
            "aff749a2b6258409",
            "bf7e2eea234a7cce",
            "9c68071bb02ea508",
            "55103aea11476a59",
            "c2ab4654f2fce944",
            "a51d2ec1fc1efd7e",
            "410f86938150f144",
            "9097168d8956bbde",
            "aa2141f9df991a88",
            "fd1aa54a7ecba64e",
            "f634eed30e7ec00e",
            "06393b8041ca32ac",
            "37b4c1be5cd5df64",
            "a2b56472fe0de821",
            "f9548332960bf6e7",
            "60aeb987c61517b0",
            "cb292c6ec7bcb2c0",
            "cbfe1d58ca7b3c46",
            "cdad157a2af8f6ad",
            "b21825776648a313",
            "75a56c01fa3bfc8c",
            "70d00a0162dac603",
            "cec666af7bb97422",
            "02081cd807b2a57c",
            "73535ab31ea1894d",
            "e9b98fee96ead489"
        ],
        "x": 2554,
        "y": 459,
        "w": 1272,
        "h": 602
    },
    {
        "id": "1020be78e174b92e",
        "type": "group",
        "z": "e7734a74f031c3a8",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "5069e2a11b50dc23",
            "defc2cecef52645b",
            "0bac97e2df07e266",
            "2dfaa35848f115b1",
            "215038051fa829b5",
            "fb9be41c994a567b",
            "3d4b6c560f36d060",
            "31f745f3ae7d75ab"
        ],
        "x": 1154,
        "y": 939,
        "w": 1252,
        "h": 82
    },
    {
        "id": "e8ddba4d4af61ec5",
        "type": "group",
        "z": "e7734a74f031c3a8",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "67dd3efe0436b86f",
            "5746eeba60d69890",
            "18851f46a77e19c7",
            "0732d9167ab3da7b",
            "34b0408fade3ab12",
            "fe63404dcc2e8b49",
            "b4f4308bf25770fc",
            "4a44d59777b54abc",
            "46f6e93b104bbc94",
            "ee4d118ddf2e2c6d",
            "81daa20c9a87b86d",
            "fa817a43b296f449",
            "10fe5e1d8f791aa9",
            "e845dec953bf503d",
            "5eae4e25c93883a0",
            "fe652a24903b967b",
            "79c6c09865b7bbc1",
            "6e003ab05b10faa6",
            "61d763af644b5246",
            "aa8c38bc884c0621",
            "38e611dd598908bc",
            "ff768c24c7e42be4",
            "5175674033687c8a",
            "7863d427f46408af",
            "1c43930400c091f9",
            "5a5f7f76189d96e1",
            "f8d2e81ac760cc0a",
            "8097bf2b694e7387",
            "4a806c12457363da",
            "6c9776d852895461",
            "8f29707b48ea91d5",
            "198a2c8750cdc33e",
            "8ad74bc637366ed3",
            "3c04166b3cb5bf07",
            "9fe92d2d70eba62c",
            "318a3316c919b6d1",
            "49348548f9883498",
            "173df58bac03104f",
            "fece40a32a7ebe61",
            "8eefd274d45c8437",
            "4de3b60720a53cdd",
            "952dc0daf8335f57",
            "18858baaa651bf51"
        ],
        "x": 954,
        "y": 1159,
        "w": 1692,
        "h": 1022
    },
    {
        "id": "a0b2719f799cd15f",
        "type": "group",
        "z": "e7734a74f031c3a8",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "931e517ba577a4f4",
            "0cdfb63bf7b6fc06",
            "5a577119381acf3d",
            "ec586d7b609c33bd",
            "2f8ccf3f9215e99a",
            "b3ad93927826aa4e",
            "88a5926bc279186b",
            "4f62267ac9a0d254",
            "69aeb5c6c75318ec",
            "eac59097800dd2cd",
            "bc78eac37132daf9",
            "df57f137af2405aa"
        ],
        "x": 914,
        "y": 5159,
        "w": 1412,
        "h": 362
    },
    {
        "id": "0bf59317bbec6494",
        "type": "group",
        "z": "060ec4e509b093af",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "4cec43c0944344d6",
            "b176a76d93dde431",
            "02ecc50f2c96decc",
            "5fbfa8bbe8ccc7d9",
            "95dd0c304e1b30dd",
            "6787d313abd68c96",
            "03899def3b73d8a6",
            "3391d0f126429c9a",
            "912a90d561f8b717",
            "74503d381a04e8a8",
            "80cc176bdf68c52a",
            "01e78e5a4146d140",
            "22b3d883ca7394d9",
            "714bb67bb57bee1d",
            "9ed1dd3d65aa4a22",
            "fe122956245216c4",
            "1acaa5af7272e2f8",
            "dcdb8618d0965b30",
            "312a46cd18d30646",
            "fa94eee78f70f8bc",
            "cf0cdc440b012695",
            "0105eea97046b927",
            "87caac68db25d64e",
            "2ce97aaf15f5137b",
            "3cc693e2ab3c8660",
            "534cc0ecadc73720",
            "27ab4580871c2533",
            "3438b20ec3794113",
            "ab89795785c0d3b2"
        ],
        "x": 114,
        "y": 19,
        "w": 1812,
        "h": 662
    },
    {
        "id": "67e59e8c7f51bd5b",
        "type": "group",
        "z": "e7734a74f031c3a8",
        "g": "54f0b75734ba2c78",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "90883accff360411",
            "612cb50407135c14",
            "a6ee3c4a388abb46",
            "fe9db6ab74dc488f",
            "572ac307c318634f",
            "c319d5af856aa681",
            "4891678c49043c93",
            "8036c0e6a02a3ea3",
            "f90520dd418cd5ac",
            "14fec817526f72b7",
            "06e61dfce8f1c902",
            "44bd7c08932d1a69",
            "03ce385ddac1174d",
            "93aed2a48633cda5",
            "ba7260fe78cc9181",
            "415ae50a793d284f"
        ],
        "x": 1354,
        "y": 2259,
        "w": 1352,
        "h": 442
    },
    {
        "id": "5ca340fca2eefe18",
        "type": "group",
        "z": "e7734a74f031c3a8",
        "g": "54f0b75734ba2c78",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "5be46589650ef66f",
            "4858f781154fe84f",
            "f81693a53728dae8",
            "7f0f81e7434f181c",
            "1360e8d68fdae2de",
            "97966981b7e95a1e",
            "46ae1cc06c193075",
            "d9d417ce9dedbfdf",
            "1e52d47b3bcd9dab",
            "2a7aa3b5112d189b",
            "a1ed3b527a0ef0df",
            "a16286409a3593f4",
            "3c6af1dd3c5ae2d2",
            "cf391f3086964479",
            "6c36690ec3718ffe",
            "b7fba124eace5d74",
            "45185365de158579",
            "2fb6897eadd55bdb"
        ],
        "x": 1354,
        "y": 2739,
        "w": 1272,
        "h": 462
    },
    {
        "id": "dade02e14790fe42",
        "type": "group",
        "z": "e7734a74f031c3a8",
        "g": "54f0b75734ba2c78",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "5b1fbaf5342cfdea",
            "7864610fefedd9da",
            "d463d3924ceec3c8",
            "b83fa92bf50b4794",
            "a24dc187fd266e53",
            "dfd2509cc657fc94",
            "bdc3504ba805683a",
            "90337085aff3b07f",
            "b89cec3771db9a64",
            "49ed3ea2078513d4",
            "39f32f9248073caf",
            "ad8c78c148465a48",
            "c7320cbbec35c1f5",
            "dee6666d35accebe",
            "48d2ba7ddd31621c",
            "718279f040890ed9",
            "1dfa711726310f3b",
            "4b64083a4616b35b",
            "ba48e55fb6283d87",
            "08248e7c69a73650"
        ],
        "x": 1354,
        "y": 3219,
        "w": 1292,
        "h": 322
    },
    {
        "id": "a4f11a328a56021f",
        "type": "group",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "4686176d6e0372b3",
            "e38754fa9181c6cc",
            "12662e32abd1779f"
        ],
        "x": 1154,
        "y": 1279,
        "w": 1012,
        "h": 82
    },
    {
        "id": "414fb9d5badfad5b",
        "type": "ui_base",
        "theme": {
            "name": "theme-light",
            "lightTheme": {
                "default": "#0094CE",
                "baseColor": "#0094CE",
                "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif",
                "edited": true,
                "reset": false
            },
            "darkTheme": {
                "default": "#097479",
                "baseColor": "#097479",
                "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif",
                "edited": false
            },
            "customTheme": {
                "name": "Untitled Theme 1",
                "default": "#4B7930",
                "baseColor": "#4B7930",
                "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"
            },
            "themeState": {
                "base-color": {
                    "default": "#0094CE",
                    "value": "#0094CE",
                    "edited": false
                },
                "page-titlebar-backgroundColor": {
                    "value": "#0094CE",
                    "edited": false
                },
                "page-backgroundColor": {
                    "value": "#fafafa",
                    "edited": false
                },
                "page-sidebar-backgroundColor": {
                    "value": "#ffffff",
                    "edited": false
                },
                "group-textColor": {
                    "value": "#1bbfff",
                    "edited": false
                },
                "group-borderColor": {
                    "value": "#ffffff",
                    "edited": false
                },
                "group-backgroundColor": {
                    "value": "#ffffff",
                    "edited": false
                },
                "widget-textColor": {
                    "value": "#111111",
                    "edited": false
                },
                "widget-backgroundColor": {
                    "value": "#0094ce",
                    "edited": false
                },
                "widget-borderColor": {
                    "value": "#ffffff",
                    "edited": false
                },
                "base-font": {
                    "value": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"
                }
            },
            "angularTheme": {
                "primary": "indigo",
                "accents": "blue",
                "warn": "red",
                "background": "grey",
                "palette": "light"
            }
        },
        "site": {
            "name": "Node-RED Dashboard",
            "hideToolbar": "false",
            "allowSwipe": "false",
            "lockMenu": "false",
            "allowTempTheme": "true",
            "dateFormat": "DD/MM/YYYY",
            "sizes": {
                "sx": 48,
                "sy": 48,
                "gx": 6,
                "gy": 6,
                "cx": 6,
                "cy": 6,
                "px": 0,
                "py": 0
            }
        }
    },
    {
        "id": "898040a71301c686",
        "type": "ctrlx-config",
        "name": "localhost",
        "hostname": "localhost",
        "debug": false
    },
    {
        "id": "f7c02d1bfc87bc1e",
        "type": "ctrlx-config-subscription",
        "device": "898040a71301c686",
        "name": "Sub_Cycle_1s",
        "publishIntervalMs": "1",
        "publishIntervalUnits": "seconds",
        "samplingInterval": "1",
        "samplingIntervalUnits": "seconds",
        "errorInterval": "10",
        "errorIntervalUnits": "seconds",
        "keepaliveInterval": "60",
        "keepaliveIntervalUnits": "seconds",
        "queueSize": "10",
        "queueBehaviour": "DiscardOldest",
        "deadbandValue": ""
    },
    {
        "id": "87cbdbc793c5b9c7",
        "type": "ui_group",
        "name": "HMI_Status",
        "tab": "c13b8130843a0d0a",
        "order": 4,
        "disp": false,
        "width": "14",
        "collapse": false,
        "className": ""
    },
    {
        "id": "aa7eeba04b5329b2",
        "type": "ui_group",
        "name": "NC_Program",
        "tab": "c13b8130843a0d0a",
        "order": 1,
        "disp": true,
        "width": "7",
        "collapse": false,
        "className": ""
    },
    {
        "id": "c13b8130843a0d0a",
        "type": "ui_tab",
        "name": "HMI-Operating",
        "icon": "dashboard",
        "order": 1,
        "disabled": false,
        "hidden": false
    },
    {
        "id": "77fe629a960d15ce",
        "type": "ui_group",
        "name": " Operator",
        "tab": "c13b8130843a0d0a",
        "order": 5,
        "disp": true,
        "width": 2,
        "collapse": false,
        "className": ""
    },
    {
        "id": "2079da971feb96df",
        "type": "ui_group",
        "name": "HMI_Configuration",
        "tab": "",
        "order": 1,
        "disp": true,
        "width": 7,
        "collapse": false,
        "className": ""
    },
    {
        "id": "c740c418c9826bf6",
        "type": "ui_group",
        "name": "Active_NC_Blocks",
        "tab": "c13b8130843a0d0a",
        "order": 3,
        "disp": true,
        "width": "7",
        "collapse": false,
        "className": ""
    },
    {
        "id": "9cba2148.8c9148",
        "type": "ui_tab",
        "name": "Examples",
        "icon": "dashboard",
        "order": 7,
        "disabled": false,
        "hidden": false
    },
    {
        "id": "76ebc5b0d8e315bb",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "c740c418c9826bf6",
        "order": 2,
        "width": 7,
        "height": 1
    },
    {
        "id": "e4b932a5bebe788f",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "c740c418c9826bf6",
        "order": 9,
        "width": 7,
        "height": 1
    },
    {
        "id": "f7faba87bebd43cd",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "c740c418c9826bf6",
        "order": 10,
        "width": 7,
        "height": 1
    },
    {
        "id": "aa82dfc89f8cafcf",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "c740c418c9826bf6",
        "order": 11,
        "width": 7,
        "height": 1
    },
    {
        "id": "1158585c3c2c0bd9",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "c740c418c9826bf6",
        "order": 12,
        "width": 7,
        "height": 1
    },
    {
        "id": "14f72a514e2c31fb",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "c740c418c9826bf6",
        "order": 13,
        "width": 7,
        "height": 1
    },
    {
        "id": "f16206901f85deb0",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "c740c418c9826bf6",
        "order": 14,
        "width": 7,
        "height": 1
    },
    {
        "id": "86cc512e83de01d9",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "c740c418c9826bf6",
        "order": 15,
        "width": 7,
        "height": 1
    },
    {
        "id": "dfa467aafbe655eb",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "c740c418c9826bf6",
        "order": 16,
        "width": 7,
        "height": 1
    },
    {
        "id": "c3fef61f3924ec84",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "c740c418c9826bf6",
        "order": 17,
        "width": 7,
        "height": 1
    },
    {
        "id": "52bd1d479780d3f9",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "c740c418c9826bf6",
        "order": 18,
        "width": 7,
        "height": 1
    },
    {
        "id": "dd1870382abb71ac",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "c740c418c9826bf6",
        "order": 19,
        "width": 7,
        "height": 1
    },
    {
        "id": "223a3f3cde1491d5",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "c740c418c9826bf6",
        "order": 21,
        "width": 5,
        "height": 1
    },
    {
        "id": "0b9102a92b57f13c",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "87cbdbc793c5b9c7",
        "order": 2,
        "width": 1,
        "height": 1
    },
    {
        "id": "7725811d9a3c267e",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "87cbdbc793c5b9c7",
        "order": 8,
        "width": 1,
        "height": 1
    },
    {
        "id": "bfd4d2ab12a1ce9b",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "87cbdbc793c5b9c7",
        "order": 14,
        "width": 1,
        "height": 1
    },
    {
        "id": "c664f527f08039ea",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "87cbdbc793c5b9c7",
        "order": 20,
        "width": 1,
        "height": 1
    },
    {
        "id": "4abbf38c11d453d2",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "87cbdbc793c5b9c7",
        "order": 26,
        "width": 1,
        "height": 1
    },
    {
        "id": "3a3996907b6fdf09",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "87cbdbc793c5b9c7",
        "order": 32,
        "width": 1,
        "height": 1
    },
    {
        "id": "6cbd864ddaa71be8",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "87cbdbc793c5b9c7",
        "order": 38,
        "width": 1,
        "height": 1
    },
    {
        "id": "0c01c43157e7de4e",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "87cbdbc793c5b9c7",
        "order": 44,
        "width": 1,
        "height": 1
    },
    {
        "id": "4259263e61da3d8c",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "87cbdbc793c5b9c7",
        "order": 51,
        "width": 2,
        "height": 1
    },
    {
        "id": "45caa165bbac0e67",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "87cbdbc793c5b9c7",
        "order": 56,
        "width": 2,
        "height": 1
    },
    {
        "id": "573ff86bf3d99023",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "87cbdbc793c5b9c7",
        "order": 57,
        "width": 4,
        "height": 1
    },
    {
        "id": "8fd50c8eff17be88",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "87cbdbc793c5b9c7",
        "order": 61,
        "width": 2,
        "height": 1
    },
    {
        "id": "9df2d65aef36349b",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "87cbdbc793c5b9c7",
        "order": 62,
        "width": 1,
        "height": 1
    },
    {
        "id": "f41d0dd4776143a6",
        "type": "ui_spacer",
        "z": "e7734a74f031c3a8",
        "name": "spacer",
        "group": "87cbdbc793c5b9c7",
        "order": 64,
        "width": 1,
        "height": 1
    },
    {
        "id": "f7d97639.3a3488",
        "type": "function",
        "z": "442f82fa.b1dd6c",
        "name": "Read Folder",
        "func": "//const fs = global.get('fs');\nvar path = (msg.path)?msg.path:(env.get(\"setFolder\"));\nvar setRecursive = (msg.recursive && typeof msg.recursive === \"boolean\")?  msg.recursive : env.get(\"setRecursive\");\nnode.status({text:\"reading\",fill:\"blue\"})\nfunction getDirectoryRecursive(__dirname) {\n    var files =  fs.readdirSync(__dirname)\n    for(var i=0; i<files.length;i++){\n        var file  = fs.statSync(`${__dirname}/${files[i]}`);\n        file.name = files[i]\n        file.path = `${__dirname}/${files[i]}`\n        file.child = []\n        if(file.isFile()){\n            file.type = \"file\"\n            files[i] = file\n        }\n        else if(file.isDirectory()){\n            file.type = \"directory\"\n            files[i] = file\n             file.child=getDirectoryRecursive(file.path)\n        }\n    }\n     return files;\n}\nfunction getDirectory(__dirname) {\n    var files =  fs.readdirSync(__dirname)\n    for(var i=0; i<files.length;i++){\n        var file  = fs.statSync(`${__dirname}/${files[i]}`);\n        file.name = files[i]\n        file.path = `${__dirname}/${files[i]}`\n        if(file.isFile()){\n            file.type = \"file\"\n            files[i] = file\n        }\n        else if(file.isDirectory()){\n            file.type = \"directory\"\n            files[i] = file\n        }\n    }\n     return files\n}\nmsg.payload = (setRecursive)?getDirectoryRecursive(path):getDirectory(path)\n\nreturn msg\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [
            {
                "var": "fs",
                "module": "fs"
            }
        ],
        "x": 270,
        "y": 120,
        "wires": [
            [
                "b30b8f7e27a79e2e"
            ]
        ]
    },
    {
        "id": "dc924f08.6c93e",
        "type": "function",
        "z": "442f82fa.b1dd6c",
        "name": "",
        "func": "node.status({text:\"readed\",fill:\"green\"});\nreturn msg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 680,
        "y": 120,
        "wires": [
            []
        ]
    },
    {
        "id": "77f85900.d547a8",
        "type": "status",
        "z": "442f82fa.b1dd6c",
        "name": "",
        "scope": null,
        "x": 180,
        "y": 220,
        "wires": [
            []
        ]
    },
    {
        "id": "b30b8f7e27a79e2e",
        "type": "function",
        "z": "442f82fa.b1dd6c",
        "name": "sort by dir or file",
        "func": "msg.payload = msg.payload.sort((a, b) => {\n    if (a.type === 'directory' && b.type === 'file') {\n        return -1; // a previous b \n    } else if (a.type === 'file' && b.type === 'directory') {\n        return 1; // a after b \n    } else {\n        return 0; // same order\n    }\n});\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 460,
        "y": 120,
        "wires": [
            [
                "dc924f08.6c93e"
            ]
        ]
    },
    {
        "id": "7d535492f8cbd987",
        "type": "ui_button",
        "z": "eac6be20859065d3",
        "name": "",
        "group": "aa7eeba04b5329b2",
        "order": 4,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "refresh ",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 140,
        "y": 320,
        "wires": [
            [
                "c4ff97f266f8b2ec"
            ]
        ]
    },
    {
        "id": "67cb4b81dbbee4cf",
        "type": "ui_template",
        "z": "eac6be20859065d3",
        "group": "aa7eeba04b5329b2",
        "name": "select file",
        "order": 2,
        "width": 5,
        "height": 6,
        "format": "<link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css\">\n\n<!-- <div style=\"font-size: 24px; color: grey;\"> -->\n<!-- <div style=\"color: grey;\">\n  <i class=\"fas fa-folder\"></i> Folder\n</div> -->\n\n<style>\ntable, th , td  {\n  border: 1px solid grey;\n  border-collapse: collapse;\n  padding: 5px;\n  text-align: left;\n}\ntable tr:nth-child(odd) {\n  background-color: #f1f1f1;\n}\ntable tr:nth-child(even) {\n  background-color: #ffffff;\n}\n</style>\n    <!-- <tr>\n      <th width=\"100%\">Folder: {{msg.shortPath}}</th>\n    </tr> -->\n<table>\n    <tr ng-repeat=\"obj in msg.payload\" ng-click=\"msg.selectedItem = obj;send(msg);\">\n        <!-- <td i class=\"fas fa-folder\"></td> -->\n        \n        <td width=\"90%\"> <i class=\"{{ obj.type =='directory' ? 'fas fa-folder' : 'fas fa-file' }}\"></i> {{ obj.name }}</td>\n    </tr>\n</table>",
        "storeOutMessages": false,
        "fwdInMessages": false,
        "resendOnRefresh": false,
        "templateScope": "local",
        "className": "",
        "x": 1180,
        "y": 380,
        "wires": [
            [
                "90b33686e4426233"
            ]
        ]
    },
    {
        "id": "adcae1364babcd3e",
        "type": "ui_template",
        "z": "eac6be20859065d3",
        "group": "aa7eeba04b5329b2",
        "name": "show file",
        "order": 11,
        "width": 7,
        "height": 11,
        "format": "<!-- <h3>File name: {{file}}</h3> -->\n<div>\n    <textarea rows = \"28\" cols = \"40\" style=\"text-wrap:nowrap\" name = \"description\" ng-model=\"script\">\n    Enter details here...\n    </textarea>\n    <br>\n    <div style=\"float: right\">\n    <md-button ng-click=\"confirm()\">\n         save\n    </md-button>\n    </div>\n</div>\n\n<script>\n    (function(scope) {\n        scope.script = \"Init value\";\n        scope.file = \"\";\n        scope.$watch('msg.filename', function(data) {\n            console.log('Position 2');\n            scope.file = data;\n        });\n        scope.$watch('msg.payload', function(data) {\n            scope.script = data;\n        });\n        scope.confirm = function() {\n            scope.send({payload: scope.script,filename: scope.file});  \n    }\n    })(scope);\n</script>\n",
        "storeOutMessages": false,
        "fwdInMessages": false,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2280,
        "y": 500,
        "wires": [
            [
                "7e869d061a65e5f7"
            ]
        ]
    },
    {
        "id": "60de42eb25983105",
        "type": "file",
        "z": "eac6be20859065d3",
        "name": "modify file",
        "filename": "filename",
        "filenameType": "msg",
        "appendNewline": false,
        "createDir": true,
        "overwriteFile": "true",
        "encoding": "none",
        "x": 2640,
        "y": 500,
        "wires": [
            [
                "5294442632611540"
            ]
        ]
    },
    {
        "id": "42ecdafe8104d100",
        "type": "file in",
        "z": "eac6be20859065d3",
        "name": "",
        "filename": "filename",
        "filenameType": "msg",
        "format": "utf8",
        "chunk": false,
        "sendError": false,
        "encoding": "none",
        "allProps": false,
        "x": 2100,
        "y": 400,
        "wires": [
            [
                "adcae1364babcd3e"
            ]
        ]
    },
    {
        "id": "90b33686e4426233",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "file or dir selected",
        "func": "// var name = msg.selectedfile;\n// msg.payload = {};\n// if (name != null)\n// {\n//     msg.payload = name;\n//     global.set(\"filename\", name);\n//     return [msg, null];\n// }\n// else \n// {\n//     node.error(\"non file selected\", msg);\n//     msg.topic = \"No valid file selected!\"\n//     return[null, msg];\n// }\n\nif (msg.selectedItem.type == 'directory')\n{\n    return [msg, null];\n}\nelse if (msg.selectedItem.type == 'file')\n{\n    return [null, msg];\n}",
        "outputs": 2,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1370,
        "y": 380,
        "wires": [
            [
                "da5a766a61d4b391"
            ],
            [
                "bfc2153d1736a5b6",
                "194d40a41bf5d094"
            ]
        ]
    },
    {
        "id": "903b19cf645c3d0b",
        "type": "ui_button",
        "z": "eac6be20859065d3",
        "name": "delete file ",
        "group": "aa7eeba04b5329b2",
        "order": 6,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "delete file",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 100,
        "y": 580,
        "wires": [
            [
                "6586ad63d794fb6c"
            ]
        ]
    },
    {
        "id": "305c776c8b4c6931",
        "type": "file",
        "z": "eac6be20859065d3",
        "name": "delete file ",
        "filename": "filename",
        "filenameType": "msg",
        "appendNewline": true,
        "createDir": false,
        "overwriteFile": "delete",
        "encoding": "none",
        "x": 720,
        "y": 580,
        "wires": [
            [
                "bb67ced1eaf44ca0",
                "ebe4f6b95801bea8"
            ]
        ]
    },
    {
        "id": "bb67ced1eaf44ca0",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "clear selected file",
        "func": "msg.payload = {};\nmsg.payload = \"\";\nglobal.set(\"curFile\", \"\");\nreturn msg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 950,
        "y": 600,
        "wires": [
            [
                "710cc9179d9c64db"
            ]
        ]
    },
    {
        "id": "ebe4f6b95801bea8",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "clear editor",
        "func": "global.set(\"curFile\", \"\");\nmsg = {};\nmsg.payload = \"\";\nmsg.filename = \"\";\nreturn msg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1090,
        "y": 540,
        "wires": [
            [
                "adcae1364babcd3e",
                "035585c0e69fa470"
            ]
        ]
    },
    {
        "id": "bfc2153d1736a5b6",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "file size check",
        "func": "\nif (msg.selectedItem.size < 500 * 1024)\n{\n    //msg.payload = size;\n    return [msg, null];\n\n}\nelse\n{\n    msg.payload = \"file size too big, cannot show\";\n    return [null,msg];\n}\n\n",
        "outputs": 2,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1600,
        "y": 400,
        "wires": [
            [
                "30eedc5ebfbe3e53"
            ],
            [
                "adcae1364babcd3e"
            ]
        ]
    },
    {
        "id": "a29e647c4d499a18",
        "type": "ui_button",
        "z": "eac6be20859065d3",
        "name": "",
        "group": "aa7eeba04b5329b2",
        "order": 5,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "Create  File",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "true",
        "payloadType": "bool",
        "topic": "   ",
        "topicType": "str",
        "x": 110,
        "y": 680,
        "wires": [
            [
                "b7db12d086f26020"
            ]
        ]
    },
    {
        "id": "41e4ffc65e80c9c4",
        "type": "comment",
        "z": "eac6be20859065d3",
        "name": "Global variable list in this flows",
        "info": "LoadedProg\nfilefullpath\nfilename",
        "x": 210,
        "y": 1040,
        "wires": []
    },
    {
        "id": "ac394f13daf76f29",
        "type": "ctrlx-datalayer-request",
        "z": "eac6be20859065d3",
        "device": "898040a71301c686",
        "method": "WRITE",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stInputData/stFileName",
        "payloadFormat": "value_type",
        "name": "",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 2240,
        "y": 600,
        "wires": [
            []
        ]
    },
    {
        "id": "da71a4813876fab3",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "read file name which selected",
        "func": "var newMsg={} ;\n//var kineName=global.get(\"gKineName\");\nif (msg.payload != null)\n{\n    newMsg.payload = { type: \"string\", \"value\": msg.payload };\n}\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1870,
        "y": 600,
        "wires": [
            [
                "ac394f13daf76f29"
            ]
        ]
    },
    {
        "id": "a380318abad5e06d",
        "type": "ui_button",
        "z": "eac6be20859065d3",
        "name": "",
        "group": "aa7eeba04b5329b2",
        "order": 12,
        "width": 7,
        "height": 1,
        "passthru": false,
        "label": "Active blocks",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 110,
        "y": 1080,
        "wires": [
            [
                "b38d30d1bad2b304"
            ]
        ]
    },
    {
        "id": "b38d30d1bad2b304",
        "type": "change",
        "z": "eac6be20859065d3",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "{\"group\":{\"hide\":[\"HMI-Operating_NC_Program\"],\"show\":[\"HMI-Operating_Active_NC_Blocks\"]}}",
                "tot": "json"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 320,
        "y": 1080,
        "wires": [
            [
                "83c1bc34c4a6c76d"
            ]
        ]
    },
    {
        "id": "83c1bc34c4a6c76d",
        "type": "ui_ui_control",
        "z": "eac6be20859065d3",
        "name": "",
        "events": "all",
        "x": 520,
        "y": 1080,
        "wires": [
            []
        ]
    },
    {
        "id": "0b57c268701f62af",
        "type": "ui_text",
        "z": "eac6be20859065d3",
        "group": "aa7eeba04b5329b2",
        "order": 9,
        "width": 7,
        "height": 1,
        "name": "split line",
        "label": "-----------------------------------------------------",
        "format": "{{msg.payload}}",
        "layout": "row-center",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": "",
        "color": "#000000",
        "x": 140,
        "y": 1160,
        "wires": []
    },
    {
        "id": "6d09c80075925c2a",
        "type": "ctrlx-datalayer-subscribe",
        "z": "eac6be20859065d3",
        "subscription": "f7c02d1bfc87bc1e",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/sysState",
        "name": "",
        "inputs": 0,
        "x": 190,
        "y": 160,
        "wires": [
            [
                "d6a1e267b7e250e6"
            ]
        ]
    },
    {
        "id": "d6a1e267b7e250e6",
        "type": "switch",
        "z": "eac6be20859065d3",
        "name": "sys state",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "RUNNING",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 460,
        "y": 160,
        "wires": [
            [
                "782e40e3ae90c9f0"
            ]
        ]
    },
    {
        "id": "815437b01004eeee",
        "type": "ui_button",
        "z": "eac6be20859065d3",
        "name": "",
        "group": "aa7eeba04b5329b2",
        "order": 8,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "Delete Dir",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 100,
        "y": 820,
        "wires": [
            [
                "9ac63caa3290749c"
            ]
        ]
    },
    {
        "id": "b7dc42f072df5b50",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "delate",
        "func": "if (msg.payload == \"Cancel\") \n{\n    return null;\n}\n\nif (msg.payload == \"OK\") {\n    var newMsg = {};\n    newMsg.filename = msg.curFile;\n    newMsg.payload = \"\\n\";\n    return newMsg;\n}",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 570,
        "y": 580,
        "wires": [
            [
                "305c776c8b4c6931"
            ]
        ]
    },
    {
        "id": "e8c50c97347140e7",
        "type": "subflow:442f82fa.b1dd6c",
        "z": "eac6be20859065d3",
        "name": "",
        "env": [
            {
                "name": "setRecursive",
                "value": "false",
                "type": "bool"
            }
        ],
        "x": 1000,
        "y": 380,
        "wires": [
            [
                "67cb4b81dbbee4cf"
            ]
        ],
        "inputLabels": [
            "path and recursive"
        ],
        "outputLabels": [
            "payload"
        ],
        "icon": "font-awesome/fa-folder-open"
    },
    {
        "id": "4694c4c75409eff9",
        "type": "inject",
        "z": "eac6be20859065d3",
        "name": "Inject by msg",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            },
            {
                "p": "recursive",
                "v": "false",
                "vt": "bool"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": "2",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 460,
        "y": 260,
        "wires": [
            [
                "782e40e3ae90c9f0"
            ]
        ]
    },
    {
        "id": "f4839a83768a0fa1",
        "type": "ui_toast",
        "z": "eac6be20859065d3",
        "position": "dialog",
        "displayTime": "3",
        "highlight": "",
        "sendall": true,
        "outputs": 1,
        "ok": "OK",
        "cancel": "",
        "raw": true,
        "className": "",
        "topic": "",
        "name": "pop-up window file null",
        "x": 1580,
        "y": 140,
        "wires": [
            []
        ]
    },
    {
        "id": "da5a766a61d4b391",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "update dir",
        "func": "var newMsg = {};\nnewMsg.path = msg.selectedItem.path;\nreturn newMsg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1580,
        "y": 340,
        "wires": [
            [
                "457ccda3bb725411"
            ]
        ]
    },
    {
        "id": "fbe085987b9b4596",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "setFolder",
        "func": "global.set(\"curFolder\", msg.path);\nmsg.shortPath = msg.path.substring(global.get(\"rootFolder\").length);\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 800,
        "y": 380,
        "wires": [
            [
                "e8c50c97347140e7",
                "0b188f47a92cc7e1",
                "b110644588dbc746"
            ]
        ]
    },
    {
        "id": "67ead102c60e8ea5",
        "type": "ui_button",
        "z": "eac6be20859065d3",
        "name": "parent directory",
        "group": "aa7eeba04b5329b2",
        "order": 3,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "Parent dir",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "fa-level-up-alt",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 120,
        "y": 380,
        "wires": [
            [
                "06c9666357213fe5"
            ]
        ]
    },
    {
        "id": "06c9666357213fe5",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "getParentFolder1",
        "func": "msg.path = global.get(\"curFolder\");\n\nif (msg.path == null) \n{\n    return null;\n}\nmsg.path = msg.path.substring(0, msg.path.lastIndexOf('/'));\n\nif (msg.path == global.get(\"rootFolder\") + \"activeConfiguration\") // can go to out of scripts folder\n{\n    node.error(\"Reach root path, cannot go to upper directory of 'scripts'\", msg);\n    return null; // do nothing\n}\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 370,
        "y": 380,
        "wires": [
            [
                "fbe085987b9b4596"
            ]
        ]
    },
    {
        "id": "c4ff97f266f8b2ec",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "get cur folder",
        "func": "msg.path = global.get(\"curFolder\");\nif (msg.path == null) \n{\n    return null;\n}\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 470,
        "y": 320,
        "wires": [
            [
                "fbe085987b9b4596"
            ]
        ]
    },
    {
        "id": "035585c0e69fa470",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "preSelectedFile",
        "func": "let str = msg.payload;\nglobal.set(\"curFile\", str);\nlet substringToRemove = global.get(\"rootFolder\");\n\nif (str.startsWith(substringToRemove)) {\n    str = str.substring(substringToRemove.length);\n}\nvar newMsg = {};\nnewMsg.payload = str;\n\nreturn newMsg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1660,
        "y": 480,
        "wires": [
            [
                "da71a4813876fab3",
                "e80f9807dd685646"
            ]
        ]
    },
    {
        "id": "782e40e3ae90c9f0",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "root folder",
        "func": "msg.path = \"/var/snap/rexroth-solutions/common/solutions/activeConfiguration/scripts\";\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "// Code added here will be run once\n// whenever the node is started.\n// global.set(\"rootFolder\", \"/var/snap/rexroth-solutions/common/solutions/activeConfiguration/\");\nglobal.set(\"rootFolder\", \"/var/snap/rexroth-solutions/common/solutions/\");\n",
        "finalize": "",
        "libs": [],
        "x": 660,
        "y": 300,
        "wires": [
            [
                "fbe085987b9b4596"
            ]
        ]
    },
    {
        "id": "30eedc5ebfbe3e53",
        "type": "change",
        "z": "eac6be20859065d3",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "filename",
                "pt": "msg",
                "to": "selectedItem.path",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1850,
        "y": 400,
        "wires": [
            [
                "42ecdafe8104d100"
            ]
        ]
    },
    {
        "id": "5e6837955a0c79b0",
        "type": "file",
        "z": "eac6be20859065d3",
        "name": "",
        "filename": "filename",
        "filenameType": "msg",
        "appendNewline": false,
        "createDir": false,
        "overwriteFile": "true",
        "encoding": "none",
        "x": 680,
        "y": 680,
        "wires": [
            [
                "710cc9179d9c64db"
            ]
        ]
    },
    {
        "id": "b7db12d086f26020",
        "type": "ui_toast",
        "z": "eac6be20859065d3",
        "position": "prompt",
        "displayTime": "3",
        "highlight": "",
        "sendall": true,
        "outputs": 1,
        "ok": "OK",
        "cancel": "Cancel",
        "raw": true,
        "className": " ",
        "topic": "Plese input file name:",
        "name": "create file",
        "x": 280,
        "y": 680,
        "wires": [
            [
                "5c53246119613e9c"
            ]
        ]
    },
    {
        "id": "9101c659216f0441",
        "type": "ui_button",
        "z": "eac6be20859065d3",
        "name": "",
        "group": "aa7eeba04b5329b2",
        "order": 7,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "Create  Dir",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": " ",
        "payloadType": "str",
        "topic": " ",
        "topicType": "str",
        "x": 110,
        "y": 760,
        "wires": [
            [
                "f50c4ebdecb80d17"
            ]
        ]
    },
    {
        "id": "b80ff10fc21b0800",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "createDir",
        "func": "if (msg.payload == 'Cancel')\n{\n\n    return [null, null];\n}\nif (msg.payload.length == 0)\n{\n    node.send([{ payload: `Error creating folder: folder name empty` }, null]);\n    return;\n}\nvar curFolder = global.get(\"curFolder\");\n// Define the path for the new folder\nconst folderPath = curFolder +\"/\" + msg.payload;\n\n// Use fs module to create the folder\nfs.mkdir(folderPath, { recursive: false}, (err) => {\n    if (err) {\n        node.error(`Error creating folder: ${err}`);\n        node.send([{ payload: `Error creating folder: ${err}` }, null]);\n    } else {\n        node.log(`Folder created successfully: ${folderPath}`);\n        // Optionally, you can send a message or trigger another node\n        node.send([null, { payload: 'Folder created successfully'}]);\n    }\n});",
        "outputs": 2,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [
            {
                "var": "fs",
                "module": "fs"
            }
        ],
        "x": 520,
        "y": 760,
        "wires": [
            [
                "9ce8dcff55e303d6"
            ],
            [
                "710cc9179d9c64db"
            ]
        ]
    },
    {
        "id": "f50c4ebdecb80d17",
        "type": "ui_toast",
        "z": "eac6be20859065d3",
        "position": "prompt",
        "displayTime": "3",
        "highlight": "",
        "sendall": true,
        "outputs": 1,
        "ok": "OK",
        "cancel": "Cancel",
        "raw": true,
        "className": " ",
        "topic": "Plese input directory name:",
        "name": "create dir",
        "x": 280,
        "y": 760,
        "wires": [
            [
                "b80ff10fc21b0800"
            ]
        ]
    },
    {
        "id": "a609f6a2a06b250a",
        "type": "ui_toast",
        "z": "eac6be20859065d3",
        "position": "dialog",
        "displayTime": "3",
        "highlight": "",
        "sendall": true,
        "outputs": 1,
        "ok": "OK",
        "cancel": "Cancel",
        "raw": true,
        "className": " ",
        "topic": "Delete this folder? ",
        "name": "delete folder check?",
        "x": 540,
        "y": 820,
        "wires": [
            [
                "fa9d1d2b2bd3a177"
            ]
        ]
    },
    {
        "id": "9ac63caa3290749c",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "Delete CurFolder?",
        "func": "msg.payload = global.get(\"curFolder\");\nlet dirPath = msg.payload;\nif (dirPath == global.get(\"rootFolder\") + \"activeConfiguration/scripts\") {\n    node.error(\"Cannot delete root folder 'scripts'\", msg);\n    return null;\n}\nelse if (dirPath.length < (global.get(\"rootFolder\") + \"activeConfiguration/scripts\").length) {\n    node.error(`Cannot delete root folder ${dirPath}`, msg);\n    return null;\n}\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 290,
        "y": 820,
        "wires": [
            [
                "a609f6a2a06b250a"
            ]
        ]
    },
    {
        "id": "5ace7dcaca4a651f",
        "type": "link in",
        "z": "eac6be20859065d3",
        "name": "update dir",
        "links": [
            "0e72d232f6492de9",
            "457ccda3bb725411"
        ],
        "x": 455,
        "y": 440,
        "wires": [
            [
                "fbe085987b9b4596"
            ]
        ]
    },
    {
        "id": "0e72d232f6492de9",
        "type": "link out",
        "z": "eac6be20859065d3",
        "name": "dir deleted",
        "mode": "link",
        "links": [
            "5ace7dcaca4a651f"
        ],
        "x": 1055,
        "y": 780,
        "wires": []
    },
    {
        "id": "3b42a80d630fc91f",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "getParentFolder",
        "func": "msg.path = global.get(\"curFolder\");\n\nif (msg.path == null) \n{\n    return null;\n}\nmsg.path = msg.path.substring(0, msg.path.lastIndexOf('/'));\n\nif (msg.path == global.get(\"rootFolder\") + \"activeConfiguration\") // can go to out of scripts folder\n{\n    return null; // do nothing\n}\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 900,
        "y": 820,
        "wires": [
            [
                "0e72d232f6492de9"
            ]
        ]
    },
    {
        "id": "457ccda3bb725411",
        "type": "link out",
        "z": "eac6be20859065d3",
        "name": "dir changed",
        "mode": "link",
        "links": [
            "5ace7dcaca4a651f"
        ],
        "x": 1725,
        "y": 340,
        "wires": []
    },
    {
        "id": "1a51028ca2ba28e3",
        "type": "catch",
        "z": "eac6be20859065d3",
        "name": "",
        "scope": [
            "06c9666357213fe5",
            "6586ad63d794fb6c",
            "7e869d061a65e5f7",
            "fa9d1d2b2bd3a177",
            "9ac63caa3290749c"
        ],
        "uncaught": false,
        "x": 90,
        "y": 500,
        "wires": [
            [
                "eaf342c605aa7f4d",
                "18a04776b1ecbfc6"
            ]
        ]
    },
    {
        "id": "a8f55c5130237d1d",
        "type": "ui_toast",
        "z": "eac6be20859065d3",
        "position": "top right",
        "displayTime": "0",
        "highlight": "",
        "sendall": true,
        "outputs": 0,
        "ok": "OK",
        "cancel": "Cancel",
        "raw": true,
        "className": " ",
        "topic": "",
        "name": "err notify",
        "x": 580,
        "y": 500,
        "wires": []
    },
    {
        "id": "eaf342c605aa7f4d",
        "type": "debug",
        "z": "eac6be20859065d3",
        "name": "debug 13",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 300,
        "y": 460,
        "wires": []
    },
    {
        "id": "18a04776b1ecbfc6",
        "type": "change",
        "z": "eac6be20859065d3",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "error.message",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 300,
        "y": 500,
        "wires": [
            [
                "a8f55c5130237d1d"
            ]
        ]
    },
    {
        "id": "9ce8dcff55e303d6",
        "type": "ui_toast",
        "z": "eac6be20859065d3",
        "position": "top right",
        "displayTime": "0",
        "highlight": "",
        "sendall": true,
        "outputs": 0,
        "ok": "OK",
        "cancel": "Cancel",
        "raw": true,
        "className": " ",
        "topic": "",
        "name": "err notify",
        "x": 700,
        "y": 720,
        "wires": []
    },
    {
        "id": "5c53246119613e9c",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "full path of created file",
        "func": "if (msg.payload == 'Cancel')\n{\n    return null;\n}\n\nmsg.filename = global.get(\"curFolder\") + \"/\"+ msg.payload;\nmsg.payload = \"\";\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 480,
        "y": 680,
        "wires": [
            [
                "5e6837955a0c79b0"
            ]
        ]
    },
    {
        "id": "710cc9179d9c64db",
        "type": "link out",
        "z": "eac6be20859065d3",
        "name": "referesh dir",
        "mode": "link",
        "links": [
            "a2ceda0e9f5684b9"
        ],
        "x": 1105,
        "y": 640,
        "wires": []
    },
    {
        "id": "a2ceda0e9f5684b9",
        "type": "link in",
        "z": "eac6be20859065d3",
        "name": "referesh",
        "links": [
            "710cc9179d9c64db"
        ],
        "x": 245,
        "y": 280,
        "wires": [
            [
                "c4ff97f266f8b2ec"
            ]
        ]
    },
    {
        "id": "fd0b1089f6e6f0fe",
        "type": "ui_toast",
        "z": "eac6be20859065d3",
        "position": "dialog",
        "displayTime": "3",
        "highlight": "",
        "sendall": true,
        "outputs": 1,
        "ok": "OK",
        "cancel": "Cancel",
        "raw": true,
        "className": " ",
        "topic": "Delete file?",
        "name": "delete file",
        "x": 400,
        "y": 580,
        "wires": [
            [
                "b7dc42f072df5b50"
            ]
        ]
    },
    {
        "id": "6586ad63d794fb6c",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "getCurFile",
        "func": "msg.payload = global.get(\"curFile\");\nif (msg.payload == null || msg.payload == \"\")\n{\n    node.error(\"No file selected\", msg);\n    return null;\n}\nmsg.curFile = msg.payload;\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 250,
        "y": 580,
        "wires": [
            [
                "fd0b1089f6e6f0fe"
            ]
        ]
    },
    {
        "id": "2471cee83fd43a6e",
        "type": "ui_template",
        "z": "eac6be20859065d3",
        "group": "aa7eeba04b5329b2",
        "name": "Custom Styling",
        "order": 15,
        "width": 7,
        "height": 1,
        "format": "<style>\n.nr-dashboard-text.red{\n    background-color: red;\n}\n.nr-dashboard-text.orange{\n    background-color: orange;\n}\n.nr-dashboard-text.lakeBlue{\n    background-color: #0094ce;\n}\n.nr-dashboard-text.wrap{\n    word-wrap: break-word;\n  //  word-break: break-all;\n}\n</style>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": false,
        "templateScope": "local",
        "className": "",
        "x": 860,
        "y": 120,
        "wires": [
            []
        ]
    },
    {
        "id": "e80f9807dd685646",
        "type": "ui_template",
        "z": "eac6be20859065d3",
        "group": "aa7eeba04b5329b2",
        "name": "preselected prog",
        "order": 10,
        "width": 7,
        "height": 2,
        "format": "<div>Preselected program:</div>\n<div style=\"word-wrap: break-word; width: 100%;\">\n    <strong>{{msg.payload}}</strong>\n</div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 1890,
        "y": 480,
        "wires": [
            []
        ]
    },
    {
        "id": "0b188f47a92cc7e1",
        "type": "ui_template",
        "z": "eac6be20859065d3",
        "group": "aa7eeba04b5329b2",
        "name": "folder",
        "order": 1,
        "width": 7,
        "height": 1,
        "format": "<div style=\"word-wrap: break-word; width: 100%;\">Path:<strong >{{msg.shortPath}}</strong> \n</div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 1010,
        "y": 280,
        "wires": [
            []
        ]
    },
    {
        "id": "194d40a41bf5d094",
        "type": "change",
        "z": "eac6be20859065d3",
        "name": "set path",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "selectedItem.path",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1480,
        "y": 440,
        "wires": [
            [
                "035585c0e69fa470"
            ]
        ]
    },
    {
        "id": "7e869d061a65e5f7",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "file name valid?",
        "func": "if (msg.filename == \"\" || msg.filename == null)\n{\n    node.error(\"No file selected!\", msg);\n    return null;\n}\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2460,
        "y": 500,
        "wires": [
            [
                "60de42eb25983105"
            ]
        ]
    },
    {
        "id": "fa9d1d2b2bd3a177",
        "type": "function",
        "z": "eac6be20859065d3",
        "name": "Delete Dir",
        "func": "if (msg.payload == \"Cancel\")\n{\n    return null;\n}\n\n// Function to recursively delete a directory and its contents\nfunction deleteDirectory(path) {\n    if (fs.existsSync(path)) {\n        fs.readdirSync(path).forEach((file) => {\n            const curPath = `${path}/${file}`;\n            if (fs.lstatSync(curPath).isDirectory()) { // recurse\n                deleteDirectory(curPath);\n            } else { // delete file\n                fs.unlinkSync(curPath);\n            }\n        });\n        fs.rmdirSync(path);\n        node.log(`Directory deleted successfully: ${path}`);\n        node.send([null, msg]);\n    } else {\n        \n        node.error(`Directory does not exist: ${path}`, msg);\n        node.send([{ payload: `Directory does not exist: ${path}` } , null]);\n    }\n}\n\nlet dirPath = global.get(\"curFolder\");\n// Call the function to delete the directory\nif (dirPath == global.get(\"rootFolder\") + \"activeConfiguration/scripts\")\n{\n    node.error(\"Cannot delete root folder 'scripts'\", msg);\n}\nelse if (dirPath.length < (global.get(\"rootFolder\") + \"activeConfiguration/scripts\").length )\n{\n    node.error(`Cannot delete root folder ${dirPath}`, msg);\n}\nelse\n{\n   deleteDirectory(dirPath);\n\n}",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [
            {
                "var": "fs",
                "module": "fs"
            }
        ],
        "x": 720,
        "y": 820,
        "wires": [
            []
        ]
    },
    {
        "id": "b110644588dbc746",
        "type": "debug",
        "z": "eac6be20859065d3",
        "name": "debug 14",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 890,
        "y": 240,
        "wires": []
    },
    {
        "id": "5294442632611540",
        "type": "delay",
        "z": "eac6be20859065d3",
        "name": "",
        "pauseType": "delay",
        "timeout": "2",
        "timeoutUnits": "seconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "allowrate": false,
        "outputs": 1,
        "x": 2680,
        "y": 400,
        "wires": [
            [
                "42ecdafe8104d100"
            ]
        ]
    },
    {
        "id": "4b590f6f7b865d11",
        "type": "function",
        "z": "607359ae64cfd52b",
        "d": true,
        "g": "35cd24c890bd683f",
        "name": "read kinematics list",
        "func": "\nvar newmsg={} ;\nnewmsg.payload=1;\nnewmsg.options= msg.payload;\nreturn newmsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 890,
        "y": 200,
        "wires": [
            [
                "78cd0a46751cf60c"
            ]
        ]
    },
    {
        "id": "78cd0a46751cf60c",
        "type": "ui_dropdown",
        "z": "607359ae64cfd52b",
        "d": true,
        "g": "35cd24c890bd683f",
        "name": "",
        "label": "",
        "tooltip": "",
        "place": "Select option",
        "group": "2079da971feb96df",
        "order": 1,
        "width": 5,
        "height": 1,
        "passthru": true,
        "multiple": false,
        "options": [
            {
                "label": "",
                "value": "",
                "type": "str"
            }
        ],
        "payload": "",
        "topic": "topic",
        "topicType": "msg",
        "className": "",
        "x": 1100,
        "y": 200,
        "wires": [
            [
                "9877422be43342ee"
            ]
        ]
    },
    {
        "id": "a6b7204e0820a0e6",
        "type": "ui_button",
        "z": "607359ae64cfd52b",
        "d": true,
        "g": "35cd24c890bd683f",
        "name": "",
        "group": "2079da971feb96df",
        "order": 2,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "Refresh",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 280,
        "y": 120,
        "wires": [
            [
                "c8c3296d05ed1251"
            ]
        ]
    },
    {
        "id": "b6cf81d50742d0f4",
        "type": "inject",
        "z": "607359ae64cfd52b",
        "d": true,
        "g": "35cd24c890bd683f",
        "name": "Check the init state ",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": "3",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 250,
        "y": 220,
        "wires": [
            [
                "c8c3296d05ed1251"
            ]
        ]
    },
    {
        "id": "4a115f30878fcbbb",
        "type": "comment",
        "z": "607359ae64cfd52b",
        "d": true,
        "g": "35cd24c890bd683f",
        "name": "transfer kinematics name to plc",
        "info": "",
        "x": 1430,
        "y": 100,
        "wires": []
    },
    {
        "id": "3df9beb4d3779863",
        "type": "inject",
        "z": "607359ae64cfd52b",
        "d": true,
        "g": "35cd24c890bd683f",
        "name": "Manual Trigger",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 240,
        "y": 280,
        "wires": [
            [
                "c8c3296d05ed1251"
            ]
        ]
    },
    {
        "id": "9877422be43342ee",
        "type": "function",
        "z": "607359ae64cfd52b",
        "d": true,
        "g": "35cd24c890bd683f",
        "name": "set 'gKineName' preselecte",
        "func": "var newMsg={} ; \nif (msg.payload != null) { \n    global.set(\"gKineName\", msg.payload);\n    newMsg.payload =  msg.payload ;\n}\n//set default kine\nvar options = msg.options;\nif (msg.payload == null && options[0].value != null)\n{\n\n    global.set(\"gKineName\", options[0].value);\n    newMsg.payload = options[0].value;\n}\n\nif (msg.payload == null && options[0].value == null) {\n   // global.set(\"gKineName\", '');\n    newMsg.payload = 'Please select one kinematics';\n}\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1420,
        "y": 200,
        "wires": [
            []
        ]
    },
    {
        "id": "650fdd471a355c3a",
        "type": "comment",
        "z": "607359ae64cfd52b",
        "d": true,
        "g": "35cd24c890bd683f",
        "name": "read kinematics list and selecte kinematics ",
        "info": "",
        "x": 300,
        "y": 60,
        "wires": []
    },
    {
        "id": "c8c3296d05ed1251",
        "type": "ctrlx-datalayer-request",
        "z": "607359ae64cfd52b",
        "d": true,
        "g": "35cd24c890bd683f",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "motion/state/kin-list",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 600,
        "y": 200,
        "wires": [
            [
                "4b590f6f7b865d11"
            ]
        ]
    },
    {
        "id": "7e988f1d6617c598",
        "type": "ctrlx-datalayer-subscribe",
        "z": "607359ae64cfd52b",
        "subscription": "f7c02d1bfc87bc1e",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/ActKinName",
        "name": "",
        "inputs": 0,
        "x": 300,
        "y": 400,
        "wires": [
            [
                "ae1e6d04ac2080f5"
            ]
        ]
    },
    {
        "id": "ae1e6d04ac2080f5",
        "type": "function",
        "z": "607359ae64cfd52b",
        "name": "set 'gKineNameselected'",
        "func": "var newMsg={} ; \nif (msg.payload != null) { \n    global.set(\"gKineNameselected\", msg.payload);\n    newMsg.payload =  msg.payload ;\n}\nelse //InvalidKineName\n{\n  //  global.set(\"gKineNameselected\", '');\n    newMsg.payload = 'no kinematics';\n}\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 690,
        "y": 400,
        "wires": [
            [
                "ab302e09920e3b75"
            ]
        ]
    },
    {
        "id": "81cc82957ce50875",
        "type": "ctrlx-datalayer-subscribe",
        "z": "607359ae64cfd52b",
        "subscription": "f7c02d1bfc87bc1e",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/stLoadedFile",
        "name": "",
        "inputs": 0,
        "x": 300,
        "y": 540,
        "wires": [
            [
                "aa706d8ef07596ca"
            ]
        ]
    },
    {
        "id": "aa706d8ef07596ca",
        "type": "function",
        "z": "607359ae64cfd52b",
        "name": "set 'LoadedProg'",
        "func": "var newMsg={} ; \nif (msg.payload != null) { \n    global.set(\"LoadedProg\", msg.payload);\n    newMsg.payload =  msg.payload ;\n}\nelse //InvalidKineName\n{\n    newMsg.payload = 'Please select one kinematics';\n}\nreturn newMsg;\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 670,
        "y": 540,
        "wires": [
            [
                "398ab7721220e9fc"
            ]
        ]
    },
    {
        "id": "398ab7721220e9fc",
        "type": "ui_text",
        "z": "607359ae64cfd52b",
        "group": "87cbdbc793c5b9c7",
        "order": 70,
        "width": 14,
        "height": 1,
        "name": "",
        "label": "Loaded prog:",
        "format": "{{msg.payload}}",
        "layout": "row-left",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": "",
        "color": "#000000",
        "x": 990,
        "y": 540,
        "wires": []
    },
    {
        "id": "ab302e09920e3b75",
        "type": "ui_text",
        "z": "607359ae64cfd52b",
        "group": "87cbdbc793c5b9c7",
        "order": 67,
        "width": 5,
        "height": 1,
        "name": "Operating:  LoadedKinematics",
        "label": "ActiveKinematic:",
        "format": "{{msg.payload}}",
        "layout": "row-left",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": 16,
        "color": "#000000",
        "x": 990,
        "y": 400,
        "wires": []
    },
    {
        "id": "524e7ce57c107dbd",
        "type": "ui_template",
        "z": "060ec4e509b093af",
        "group": "aa7eeba04b5329b2",
        "name": "Logo / Clock",
        "order": 13,
        "width": 7,
        "height": 1,
        "format": "<script id=\"clockScript1\" type=\"text/javascript\">\n    var clockInterval;\n    $(function () {\n        if (clockInterval) return;\n\n        //add logo\n        var div1 = $('<div/>');\n        div1.css({\n        position: 'absolute',\n        top: '45%',\n        left: '61%',\n        transform: 'translate(90%, -50%)'\n        });\n\n        var logo = new Image();\n\n        logo.src = \"data:image/svg+xml;base64,[encoded data, 94808 characters]\";\n        logo.height = 45;\n        logo.width = 200;\n        div1[0].style.margin = '10px auto';\n\n        $('body').append(div1);\n        div1.append(logo);\n\n        //add clock\n        var div2 = $('<div/>');\n        var p = $('<p/>');\n\n        div2.append(p);\n        div2[0].style.margin = '5px';\n\n        function displayTime() {\n            p.text(new Date().toLocaleString());\n        }\n        \n        clockInterval = setInterval(displayTime, 1000);\n\n        //add to toolbar when it's available\n        var addToToolbarTimer;\n        \n        function addToToolbar() {\n            var toolbar = $('.md-toolbar-tools');\n            \n            if(!toolbar.length) return;\n            \n            toolbar.append(div1);\n            toolbar.append(div2);\n            clearInterval(addToToolbarTimer);\n        }\n        addToToolbarTimer = setInterval(addToToolbar, 100);\n    });\n</script>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": false,
        "templateScope": "global",
        "className": "",
        "x": 290,
        "y": 60,
        "wires": [
            []
        ]
    },
    {
        "id": "4cec43c0944344d6",
        "type": "ui_text",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "group": "c740c418c9826bf6",
        "order": 3,
        "width": 7,
        "height": 1,
        "name": "split line ：show NC block",
        "label": "---------------------------------------------------",
        "format": "",
        "layout": "row-center",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": "",
        "color": "#000000",
        "x": 670,
        "y": 60,
        "wires": []
    },
    {
        "id": "b176a76d93dde431",
        "type": "comment",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "Read line of NC prog",
        "info": "",
        "x": 240,
        "y": 240,
        "wires": []
    },
    {
        "id": "02ecc50f2c96decc",
        "type": "ui_button",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "",
        "group": "c740c418c9826bf6",
        "order": 23,
        "width": 7,
        "height": 1,
        "passthru": false,
        "label": "Program",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 620,
        "y": 640,
        "wires": [
            [
                "5fbfa8bbe8ccc7d9"
            ]
        ]
    },
    {
        "id": "5fbfa8bbe8ccc7d9",
        "type": "change",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "{\"group\":{\"hide\":[\"HMI-Operating_Active_NC_Blocks\"],\"show\":[\"HMI-Operating_NC_Program\"]}}",
                "tot": "json"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 800,
        "y": 640,
        "wires": [
            [
                "95dd0c304e1b30dd"
            ]
        ]
    },
    {
        "id": "95dd0c304e1b30dd",
        "type": "ui_ui_control",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "",
        "events": "all",
        "x": 1060,
        "y": 640,
        "wires": [
            []
        ]
    },
    {
        "id": "6787d313abd68c96",
        "type": "ui_text",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "group": "c740c418c9826bf6",
        "order": 1,
        "width": 7,
        "height": 1,
        "name": "show file name and src line number",
        "label": "{{msg.payload}}",
        "format": "",
        "layout": "col-center",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": "",
        "color": "#000000",
        "x": 1180,
        "y": 120,
        "wires": []
    },
    {
        "id": "03899def3b73d8a6",
        "type": "inject",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "1",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 230,
        "y": 420,
        "wires": [
            [
                "3391d0f126429c9a"
            ]
        ]
    },
    {
        "id": "3391d0f126429c9a",
        "type": "function",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "read src",
        "func": "msg.payload = global.get(\"cmdSrc\");\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 380,
        "y": 420,
        "wires": [
            [
                "912a90d561f8b717"
            ]
        ]
    },
    {
        "id": "912a90d561f8b717",
        "type": "function",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "src info changed ?",
        "func": "var oldSrcInfo = global.get(\"oldSrcInfo\");\nvar curSrcInfo = {};\ncurSrcInfo.type = msg.payload.type;\ncurSrcInfo.name = msg.payload.name;\ncurSrcInfo.line = msg.payload.line;\n\nfunction sourceInfoChanged(oldInfo, newInfo)\n{   \n    if (oldInfo == null) {\n        return true;\n    }\n    if ( oldInfo.name == newInfo.name && oldInfo.line == newInfo.line)\n    {\n        return false;\n    }\n    return true;\n}\nglobal.set(\"oldSrcInfo\", curSrcInfo);\n\nif (msg.payload.type == 'key.script' && sourceInfoChanged(oldSrcInfo, curSrcInfo))\n{\n    return msg;\n}\n\n",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "// Code added here will be run once\n// whenever the node is started.\nglobal.set(\"oldSrcInfo\", null);",
        "finalize": "",
        "libs": [],
        "x": 570,
        "y": 420,
        "wires": [
            [
                "74503d381a04e8a8",
                "dcdb8618d0965b30",
                "3cc693e2ab3c8660"
            ]
        ]
    },
    {
        "id": "74503d381a04e8a8",
        "type": "function",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "name and pos",
        "func": "console.log(\"test\");\nif (msg.payload.type == 'key.script') {\n    var namePos = msg.payload.name;\n    var line = msg.payload.line;\n    let startIndex = namePos.indexOf(\"(\");\n    let endIndex = namePos.indexOf(\")\");\n   // var tmpMsg;\n    if (startIndex !== -1 && endIndex !== -1 && startIndex < endIndex) {\n        let filePath = namePos.substring(0, startIndex);\n        let filePos = namePos.substring(startIndex + 1, endIndex);\n        const payload = {\n            path: filePath,\n            pos: parseInt(filePos),\n            line: line,\n            fullPath: namePos\n        }\n        msg.payload = payload;\n        node.send(msg);\n    }\n}\nelse\n{\n    msg = {};  \n}\n",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 880,
        "y": 460,
        "wires": [
            [
                "80cc176bdf68c52a"
            ]
        ]
    },
    {
        "id": "80cc176bdf68c52a",
        "type": "function",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "read severl lines from file",
        "func": "// @ts-nocheck\n\nfunction readLinesFromFile(filePath, targetPosition, linesToRead, node) {\n    try{\n        const fileStream = fs.createReadStream(filePath, { start: targetPosition });\n        const rl = readline.createInterface({\n            input: fileStream,\n            //output: process.stdout\n            crlfDelay: Infinity, // To recognize all instances of \\r, \\n, \\r\\n as delimiters\n        });\n\n        let linesCounter = 0;\n        const readLines = [];\n\n        rl.on('line', (line) => {\n            console.log('recevice a line');\n            readLines.push(line);\n            linesCounter++;\n            if (linesCounter >= linesToRead) {\n                rl.close();\n                rl.removeAllListeners()\n                fileStream.close();\n                const msg = { payload: readLines };\n                node.send(msg);\n            }\n        });\n\n        rl.on('close', () => {\n            console.log(\"Reach EOF.\");\n            if (linesCounter < linesToRead) {\n                const msg = { payload: readLines };\n                node.send(msg); // Send the message only once\n            }\n        });\n\n        rl.on('error', (err) => {\n            console.error('Error when read file:', err);\n            node.error(\"Read file error: \" + err.message);\n        });\n\n        fileStream.on('error', (err) => {\n            node.error(\"Error when open file: \" + err.message);\n        });\n    }catch(err){\n        //node.error(err.message);\n    }\n    \n}\n\n// Example usage:\n//var filePath = '/var/snap/rexroth-solutions/common/solutions/activeConfiguration/scripts/1.txt';\n\n// var filePath = '/var/snap/rexroth-solutions/common/solutions/activeConfiguration/scripts/gcode/14016_D2_StandardGcode_G8.gcode';\n// var targetPosition = 26712641;\n// var linesToRead = 8;\n\n// var filePath = '/var/snap/rexroth-solutions/common/solutions/' + msg.payload.path;\nvar filePath = msg.payload.path;\nfilePath = filePath.replace(\"/var/snap/rexroth-automationcore\", \"/var/snap/rexroth-solutions\");\n\nvar targetPosition = msg.payload.pos;\nvar linesToRead = 5;\n\nif (msg.payload.path != \"SourceString\") // SourceString means run from string\n{\n    readLinesFromFile(filePath, targetPosition, linesToRead, node);\n}\n",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [
            {
                "var": "fs",
                "module": "fs"
            },
            {
                "var": "readline",
                "module": "readline"
            }
        ],
        "x": 1130,
        "y": 460,
        "wires": [
            [
                "01e78e5a4146d140",
                "fa94eee78f70f8bc",
                "1acaa5af7272e2f8",
                "fe122956245216c4",
                "9ed1dd3d65aa4a22",
                "714bb67bb57bee1d"
            ]
        ]
    },
    {
        "id": "01e78e5a4146d140",
        "type": "debug",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "debug 5",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 1820,
        "y": 460,
        "wires": []
    },
    {
        "id": "22b3d883ca7394d9",
        "type": "ui_text",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "group": "c740c418c9826bf6",
        "order": 4,
        "width": 7,
        "height": 1,
        "name": "line 0",
        "label": "",
        "format": "{{msg.payload[0]}}",
        "layout": "row-left",
        "className": "",
        "style": true,
        "font": "",
        "fontSize": 16,
        "color": "#ffffff",
        "x": 1430,
        "y": 300,
        "wires": []
    },
    {
        "id": "714bb67bb57bee1d",
        "type": "ui_text",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "group": "c740c418c9826bf6",
        "order": 5,
        "width": 7,
        "height": 1,
        "name": "line1",
        "label": "",
        "format": "{{msg.payload[1]}}",
        "layout": "row-left",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": 16,
        "color": "#000000",
        "x": 1430,
        "y": 360,
        "wires": []
    },
    {
        "id": "9ed1dd3d65aa4a22",
        "type": "ui_text",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "group": "c740c418c9826bf6",
        "order": 6,
        "width": 7,
        "height": 1,
        "name": "line2",
        "label": "",
        "format": "{{msg.payload[2]}}",
        "layout": "row-left",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": 16,
        "color": "#000000",
        "x": 1430,
        "y": 420,
        "wires": []
    },
    {
        "id": "fe122956245216c4",
        "type": "ui_text",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "group": "c740c418c9826bf6",
        "order": 7,
        "width": 7,
        "height": 1,
        "name": "line3",
        "label": "",
        "format": "{{msg.payload[3]}}",
        "layout": "row-left",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": 16,
        "color": "#000000",
        "x": 1430,
        "y": 480,
        "wires": []
    },
    {
        "id": "1acaa5af7272e2f8",
        "type": "ui_text",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "group": "c740c418c9826bf6",
        "order": 8,
        "width": 7,
        "height": 1,
        "name": "line4",
        "label": "",
        "format": "{{msg.payload[4]}}",
        "layout": "row-left",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": 16,
        "color": "#000000",
        "x": 1430,
        "y": 540,
        "wires": []
    },
    {
        "id": "dcdb8618d0965b30",
        "type": "ui_text",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "group": "c740c418c9826bf6",
        "order": 22,
        "width": 2,
        "height": 1,
        "name": "line number",
        "label": "line:",
        "format": "{{msg.payload.line}}",
        "layout": "row-spread",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": "",
        "color": "#000000",
        "x": 1390,
        "y": 620,
        "wires": []
    },
    {
        "id": "312a46cd18d30646",
        "type": "ui_template",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "group": "c740c418c9826bf6",
        "name": "Custom Styling",
        "order": 20,
        "width": 7,
        "height": 1,
        "format": "<style>\n.nr-dashboard-text.red{\n    background-color: red;\n}\n.nr-dashboard-text.orange{\n    background-color: orange;\n}\n.nr-dashboard-text.lakeBlue{\n    background-color: #0094ce;\n}\n.nr-dashboard-text.wrap{\n    word-wrap: break-word;\n  //  word-break: break-all;\n}\n</style>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": false,
        "templateScope": "local",
        "className": "",
        "x": 1460,
        "y": 220,
        "wires": [
            []
        ]
    },
    {
        "id": "fa94eee78f70f8bc",
        "type": "change",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "style",
        "rules": [
            {
                "t": "set",
                "p": "className",
                "pt": "msg",
                "to": "lakeBlue",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "status",
                "pt": "msg",
                "to": "Normal",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1310,
        "y": 300,
        "wires": [
            [
                "22b3d883ca7394d9"
            ]
        ]
    },
    {
        "id": "d53a2973d0d024e1",
        "type": "inject",
        "z": "060ec4e509b093af",
        "d": true,
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "5",
        "crontab": "",
        "once": true,
        "onceDelay": "1",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 190,
        "y": 860,
        "wires": [
            [
                "73a37082ccdfbe22"
            ]
        ]
    },
    {
        "id": "73a37082ccdfbe22",
        "type": "ctrlx-datalayer-request",
        "z": "060ec4e509b093af",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/HeartBeat",
        "payloadFormat": "value",
        "name": "PlcHeartBeat",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 410,
        "y": 860,
        "wires": [
            [
                "5760629def076a56"
            ]
        ]
    },
    {
        "id": "1b150940d6db4866",
        "type": "catch",
        "z": "060ec4e509b093af",
        "name": "",
        "scope": [
            "73a37082ccdfbe22"
        ],
        "uncaught": false,
        "x": 390,
        "y": 960,
        "wires": [
            [
                "70baa2b0a67702c7"
            ]
        ]
    },
    {
        "id": "70baa2b0a67702c7",
        "type": "function",
        "z": "060ec4e509b093af",
        "name": "fcnHeartBeat",
        "func": "msg.topic = \"Connect to PLC failed!\"\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 630,
        "y": 960,
        "wires": [
            [
                "170c3b5c6cf85427"
            ]
        ]
    },
    {
        "id": "5760629def076a56",
        "type": "function",
        "z": "060ec4e509b093af",
        "name": "fcnHeartBeatUnchanged",
        "func": "let oldHeartBeat = flow.get(\"HeartBeat\");\nflow.set(\"HeartBeat\", msg.payload);\nif (oldHeartBeat == msg.payload )\n{\n    msg.payload = \"PLC stopped? Heatbeat stop...\";\n    return msg;\n}\n",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "// Code added here will be run once\n// whenever the node is started.\nflow.set(\"HeartBeat\",0);\n",
        "finalize": "",
        "libs": [],
        "x": 710,
        "y": 860,
        "wires": [
            [
                "170c3b5c6cf85427"
            ]
        ]
    },
    {
        "id": "170c3b5c6cf85427",
        "type": "ui_toast",
        "z": "060ec4e509b093af",
        "d": true,
        "position": "top right",
        "displayTime": "4",
        "highlight": "",
        "sendall": true,
        "outputs": 0,
        "ok": "OK",
        "cancel": "",
        "raw": false,
        "className": "",
        "topic": "Connect to plc failed",
        "name": "",
        "x": 990,
        "y": 860,
        "wires": []
    },
    {
        "id": "cf0cdc440b012695",
        "type": "link in",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "GCO error",
        "links": [
            "034c9697aed4789d"
        ],
        "x": 705,
        "y": 220,
        "wires": [
            [
                "87caac68db25d64e"
            ]
        ]
    },
    {
        "id": "0105eea97046b927",
        "type": "function",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "gco error source",
        "func": "var newMsg = {};\nlet namePos = msg.payload.lastErrText.split('-> ')[1];\nlet startIndex = namePos.indexOf(\"(\");\nlet endIndex = namePos.indexOf(\")\");\nlet lineIdx = namePos.indexOf(\"line:\");\n// var tmpMsg;\nif (startIndex !== -1 && endIndex !== -1 && startIndex < endIndex && lineIdx !== -1) {\n    let filePath = namePos.substring(0, startIndex);\n    let filePos = namePos.substring(startIndex + 1, endIndex);\n    let line = namePos.substring(lineIdx+6, namePos.length);\n    const payload = {\n        path: filePath,\n        pos: parseInt(filePos),\n        line: line,\n        fullPath: namePos\n    };\n    msg.payload = payload;\n    return msg;\n}\nelse\n{\n    return null;\n}",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1140,
        "y": 380,
        "wires": [
            [
                "80cc176bdf68c52a",
                "dcdb8618d0965b30",
                "534cc0ecadc73720"
            ]
        ]
    },
    {
        "id": "87caac68db25d64e",
        "type": "function",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "instances error",
        "func": "//Kinematics_1 / state / values / ipo / pos\nvar kineName = global.get(\"gKineNameselected\");\nvar str_start = \"script/instances/\" + kineName;\nvar str_end = \"/diag\";\nmsg.method = 'READ';\nmsg.path = str_start +  str_end ;\n//global.set(\"InstPath\", msg.path);\nreturn msg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 760,
        "y": 320,
        "wires": [
            [
                "2ce97aaf15f5137b"
            ]
        ]
    },
    {
        "id": "2ce97aaf15f5137b",
        "type": "ctrlx-datalayer-request",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "device": "898040a71301c686",
        "method": "msg",
        "path": "",
        "payloadFormat": "value",
        "name": "Diag read",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 840,
        "y": 380,
        "wires": [
            [
                "3438b20ec3794113"
            ]
        ]
    },
    {
        "id": "3cc693e2ab3c8660",
        "type": "change",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.name",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 720,
        "y": 120,
        "wires": [
            [
                "27ab4580871c2533"
            ]
        ]
    },
    {
        "id": "534cc0ecadc73720",
        "type": "change",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "",
        "rules": [
            {
                "t": "move",
                "p": "payload.fullPath",
                "pt": "msg",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1080,
        "y": 220,
        "wires": [
            [
                "6787d313abd68c96"
            ]
        ]
    },
    {
        "id": "27ab4580871c2533",
        "type": "change",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "style",
        "rules": [
            {
                "t": "set",
                "p": "className",
                "pt": "msg",
                "to": "wrap",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "status",
                "pt": "msg",
                "to": "Normal",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 930,
        "y": 120,
        "wires": [
            [
                "6787d313abd68c96"
            ]
        ]
    },
    {
        "id": "3438b20ec3794113",
        "type": "rbe",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "",
        "func": "rbe",
        "gap": "",
        "start": "",
        "inout": "out",
        "septopics": false,
        "property": "payload",
        "topi": "topic",
        "x": 970,
        "y": 380,
        "wires": [
            [
                "0105eea97046b927"
            ]
        ]
    },
    {
        "id": "ab89795785c0d3b2",
        "type": "inject",
        "z": "060ec4e509b093af",
        "g": "0bf59317bbec6494",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 820,
        "y": 240,
        "wires": [
            [
                "87caac68db25d64e"
            ]
        ]
    },
    {
        "id": "5be46589650ef66f",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "5ca340fca2eefe18",
        "group": "87cbdbc793c5b9c7",
        "name": "ActPos of Axis Idex_0",
        "order": 11,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}}</div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2500,
        "y": 2780,
        "wires": [
            []
        ]
    },
    {
        "id": "4858f781154fe84f",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "5ca340fca2eefe18",
        "group": "87cbdbc793c5b9c7",
        "name": "ActPos of Axis Idex_1",
        "order": 17,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}}</div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2500,
        "y": 2860,
        "wires": [
            []
        ]
    },
    {
        "id": "f81693a53728dae8",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "5ca340fca2eefe18",
        "group": "87cbdbc793c5b9c7",
        "name": "ActPos of Axis Idex_2",
        "order": 23,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}}</div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2500,
        "y": 2920,
        "wires": [
            []
        ]
    },
    {
        "id": "5b1fbaf5342cfdea",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "group": "87cbdbc793c5b9c7",
        "name": "TargetPos of axis Idex_0",
        "order": 12,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2510,
        "y": 3260,
        "wires": [
            []
        ]
    },
    {
        "id": "7864610fefedd9da",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "group": "87cbdbc793c5b9c7",
        "name": "TargetPos of axis Idex_1",
        "order": 18,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2510,
        "y": 3300,
        "wires": [
            []
        ]
    },
    {
        "id": "d463d3924ceec3c8",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "group": "87cbdbc793c5b9c7",
        "name": "TargetPosof axis Idex_2",
        "order": 24,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2510,
        "y": 3340,
        "wires": [
            []
        ]
    },
    {
        "id": "90883accff360411",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "67e59e8c7f51bd5b",
        "group": "87cbdbc793c5b9c7",
        "name": "unit of axis Idex_0/X",
        "order": 10,
        "width": 2,
        "height": 1,
        "format": "<div> {{msg.payload}}</div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2500,
        "y": 2300,
        "wires": [
            []
        ]
    },
    {
        "id": "612cb50407135c14",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "67e59e8c7f51bd5b",
        "group": "87cbdbc793c5b9c7",
        "name": "Unit",
        "order": 4,
        "width": 2,
        "height": 1,
        "format": "<div >Unit</div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 1670,
        "y": 2300,
        "wires": [
            []
        ]
    },
    {
        "id": "b83fa92bf50b4794",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "name": "pos transfer of axis[Idex_0] :X",
        "func": "var newMsg = {};\n//\nvar i;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\") {\n    i = global.get(\"Idex_0\");\n    newMsg.value = msg.payload.targetPos[i];\n    var AxisTrig = global.get(\"TrigAxis0\");\n    if (AxisTrig == false) {\n        newMsg.value = 0.0000;\n    }\n}\nelse {\n    i = 0;  //X\n    newMsg.value = msg.payload.targetPos[i];\n}\n//\n\n    newMsg.payload = newMsg.value ;\n    newMsg.payload = newMsg.payload.toFixed(4); \nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2150,
        "y": 3260,
        "wires": [
            [
                "5b1fbaf5342cfdea"
            ]
        ]
    },
    {
        "id": "a24dc187fd266e53",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "name": "pos transfer of axis[Idex_1] :Y",
        "func": "var newMsg = {};\n//\nvar i ;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\")\n{\n    i = global.get(\"Idex_1\");\n    newMsg.value = msg.payload.targetPos[i];\n    var AxisTrig = global.get(\"TrigAxis1\");\n    if (AxisTrig == false) {\n        newMsg.value = 0.0000;\n} \n}\nelse\n{\n     i = 1;  //Y\n    newMsg.value = msg.payload.targetPos[i];\n}\n//\n    newMsg.payload = newMsg.value  ;\n    newMsg.payload = newMsg.payload.toFixed(4); \nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2150,
        "y": 3300,
        "wires": [
            [
                "7864610fefedd9da"
            ]
        ]
    },
    {
        "id": "dfd2509cc657fc94",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "name": "pos transfer of axis[Idex_2] : Z",
        "func": "var newMsg = {};\n//\nvar i ;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\")\n{\n    i = global.get(\"Idex_2\");\n    newMsg.value = msg.payload.targetPos[i];\n    var AxisTrig = global.get(\"TrigAxis2\");\n    if (AxisTrig == false) {\n        newMsg.value = 0.0000;\n    }\n}\nelse\n{\n     i = 2;  //Z\n     newMsg.value = msg.payload.targetPos[i];\n}\n//\n\n    newMsg.payload = newMsg.value ;\n    newMsg.payload = newMsg.payload.toFixed(4);           \nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2150,
        "y": 3340,
        "wires": [
            [
                "d463d3924ceec3c8"
            ]
        ]
    },
    {
        "id": "d4a0ec5982766f4b",
        "type": "ui_text",
        "z": "e7734a74f031c3a8",
        "g": "adb95d965ba4df87",
        "group": "87cbdbc793c5b9c7",
        "order": 66,
        "width": 14,
        "height": 1,
        "name": "",
        "label": "CmdActive:",
        "format": "{{msg.payload}}",
        "layout": "row-left",
        "className": "",
        "x": 1670,
        "y": 4560,
        "wires": []
    },
    {
        "id": "8e5cf893bcfc05ee",
        "type": "ui_text",
        "z": "e7734a74f031c3a8",
        "g": "54f0b75734ba2c78",
        "group": "87cbdbc793c5b9c7",
        "order": 50,
        "width": 14,
        "height": 1,
        "name": "split line 1",
        "label": "----------------------------------------------------------------------------------------------------------------",
        "format": "{{msg.payload}}",
        "layout": "row-center",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": "",
        "color": "#000000",
        "x": 1200,
        "y": 3680,
        "wires": []
    },
    {
        "id": "07905d0a671e7ea5",
        "type": "ui_text",
        "z": "e7734a74f031c3a8",
        "group": "87cbdbc793c5b9c7",
        "order": 65,
        "width": 14,
        "height": 1,
        "name": "split line 2",
        "label": "----------------------------------------------------------------------------------------------------------------",
        "format": "{{msg.payload}}",
        "layout": "row-center",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": "",
        "color": "#000000",
        "x": 780,
        "y": 4280,
        "wires": []
    },
    {
        "id": "7f0f81e7434f181c",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "5ca340fca2eefe18",
        "name": "command pos of axis[Idex_0] :",
        "func": "var newMsg = {};\n//\nvar i ;\nvar num;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\")\n{\n    i = global.get(\"Idex_0\");\n    num = msg.payload.pos[i];\n   var  AxisTrig = global.get(\"TrigAxis0\");\n    if (AxisTrig==false)\n    {\n        num=0.0000; \n    } \n}\nelse\n{\n     i = 0;  //X\n     num = msg.payload.pos[i];\n}\n//\n\nnewMsg.payload = num.toFixed(4); \nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2150,
        "y": 2780,
        "wires": [
            [
                "5be46589650ef66f"
            ]
        ]
    },
    {
        "id": "1360e8d68fdae2de",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "5ca340fca2eefe18",
        "name": "command pos of axis[Idex_1]  ",
        "func": "var newMsg = {};\n//\nvar i ;\nvar num;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\")\n{\n    i = global.get(\"Idex_1\");\n    num = msg.payload.pos[i];\n    var AxisTrig = global.get(\"TrigAxis1\");\n    if (AxisTrig==false)\n    {\n        num=0.0000; \n    } \n}\nelse\n{\n     i = 1;  //Y\n     num = msg.payload.pos[i];\n}\n//\n\nnewMsg.payload = num.toFixed(4); \nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2140,
        "y": 2860,
        "wires": [
            [
                "4858f781154fe84f"
            ]
        ]
    },
    {
        "id": "97966981b7e95a1e",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "5ca340fca2eefe18",
        "name": "command pos of axis[Idex_2]  ",
        "func": "var newMsg = {};\n//\nvar i ;\nvar num;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\")\n{\n    i = global.get(\"Idex_2\");\n    num = msg.payload.pos[i];\n    var AxisTrig = global.get(\"TrigAxis2\");\n    if (AxisTrig == false) {\n        num = 0.0000;\n    }\n}\nelse\n{\n     i = 2;  //Z\n    num = msg.payload.pos[i];\n}\n//\n\nnewMsg.payload = num.toFixed(4); \nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2140,
        "y": 2920,
        "wires": [
            [
                "f81693a53728dae8"
            ]
        ]
    },
    {
        "id": "46ae1cc06c193075",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "5ca340fca2eefe18",
        "group": "87cbdbc793c5b9c7",
        "name": "ActPos of Axis Idex_6",
        "order": 47,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}}</div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2500,
        "y": 3160,
        "wires": [
            []
        ]
    },
    {
        "id": "d9d417ce9dedbfdf",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "5ca340fca2eefe18",
        "name": "command pos of axis[Idex_6] ",
        "func": "var newMsg = {};\n//\nvar i;\nvar num;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\") {\n    i = global.get(\"Idex_6\");\n    num = msg.payload.pos[i];\n    var AxisTrig = global.get(\"TrigAxis6\");\n    if (AxisTrig == false) {\n        num = 0.0000;\n    }\n}\nelse {\n    i = 6;  //FreeaAxis_7\n    num = msg.payload.pos[i];\n}\n//\n\nnewMsg.payload = num.toFixed(4); \nreturn newMsg;\n\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2140,
        "y": 3160,
        "wires": [
            [
                "46ae1cc06c193075"
            ]
        ]
    },
    {
        "id": "bdc3504ba805683a",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "group": "87cbdbc793c5b9c7",
        "name": "TargetPos of axis Idex_6",
        "order": 48,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2510,
        "y": 3500,
        "wires": [
            []
        ]
    },
    {
        "id": "90337085aff3b07f",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "name": " pos transfer of axis[Idex_6] : seventh axis",
        "func": "var newMsg = {};\n//\nvar i;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\") {\n    i = global.get(\"Idex_6\");\n    newMsg.value = msg.payload.targetPos[i];\n    var AxisTrig = global.get(\"TrigAxis6\");\n    if (AxisTrig == false) {\n        newMsg.value = 0.0000;\n    }\n}\nelse {\n    i = 6;  //FreeAxis_7\n    newMsg.value = msg.payload.targetPos[i];\n}\n//\n\n    newMsg.payload = newMsg.value;\n    newMsg.payload = newMsg.payload.toFixed(4);           \nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2180,
        "y": 3500,
        "wires": [
            [
                "bdc3504ba805683a"
            ]
        ]
    },
    {
        "id": "c5c9aedb5da431ed",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "696cb6d91aa73313",
        "name": "kin dist. to go",
        "func": "var newMsg = {};\nvar num = msg.payload;\nnewMsg.payload = num.toFixed(4); \nreturn newMsg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1670,
        "y": 4720,
        "wires": [
            []
        ]
    },
    {
        "id": "ef6bd5f218b6cc56",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "g": "54f0b75734ba2c78",
        "name": "Read from MOTION",
        "info": "",
        "x": 1030,
        "y": 2260,
        "wires": []
    },
    {
        "id": "1e52d47b3bcd9dab",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "g": "5ca340fca2eefe18",
        "name": "Actual position",
        "info": "",
        "x": 1460,
        "y": 2780,
        "wires": []
    },
    {
        "id": "a6ee3c4a388abb46",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "g": "67e59e8c7f51bd5b",
        "name": "Axes unit",
        "info": "",
        "x": 1440,
        "y": 2300,
        "wires": []
    },
    {
        "id": "b89cec3771db9a64",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "name": "Target position",
        "info": "",
        "x": 1480,
        "y": 3300,
        "wires": []
    },
    {
        "id": "a6a1f2f27e37f98b",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "g": "696cb6d91aa73313",
        "name": "Kin dis to go",
        "info": "",
        "x": 1010,
        "y": 4660,
        "wires": []
    },
    {
        "id": "4f6164d08dfad154",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "g": "54f0b75734ba2c78",
        "name": "Dividing line 1",
        "info": "",
        "x": 1030,
        "y": 3680,
        "wires": []
    },
    {
        "id": "eed0c1512888cba7",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "name": "Dividing line 2",
        "info": "",
        "x": 590,
        "y": 4280,
        "wires": []
    },
    {
        "id": "867b711a15551bbd",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "g": "adb95d965ba4df87",
        "name": "CmdActive",
        "info": "",
        "x": 1000,
        "y": 4500,
        "wires": []
    },
    {
        "id": "f658a2fa3bb2cfbe",
        "type": "ui_text",
        "z": "e7734a74f031c3a8",
        "group": "87cbdbc793c5b9c7",
        "order": 71,
        "width": 10,
        "height": 1,
        "name": "split line 3",
        "label": "-----------------------------------------------------------------------------",
        "format": "                                                                         ",
        "layout": "col-center",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": "",
        "color": "#000000",
        "x": 560,
        "y": 5100,
        "wires": []
    },
    {
        "id": "60a617de51b30d6e",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "8558b6572a9683a7",
        "group": "87cbdbc793c5b9c7",
        "name": "actual velocity value",
        "order": 59,
        "width": 3,
        "height": 1,
        "format": "<div>{{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2080,
        "y": 4180,
        "wires": [
            []
        ]
    },
    {
        "id": "5ed17be5f13797dd",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "8558b6572a9683a7",
        "name": "Read program velocity",
        "func": "var newMsg = {};\nnewMsg.payload = msg.payload.lim.vel;\nnewMsg.payload = newMsg.payload.toFixed(4)\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1680,
        "y": 3840,
        "wires": [
            [
                "43d1e5131c8adb43"
            ]
        ]
    },
    {
        "id": "43d1e5131c8adb43",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "8558b6572a9683a7",
        "group": "87cbdbc793c5b9c7",
        "name": "Program velocity value",
        "order": 58,
        "width": 3,
        "height": 1,
        "format": "<div>{{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2080,
        "y": 3840,
        "wires": [
            []
        ]
    },
    {
        "id": "028bb2ee78bd458a",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "g": "8558b6572a9683a7",
        "name": "Feed speed",
        "info": "",
        "x": 990,
        "y": 3780,
        "wires": []
    },
    {
        "id": "72c7987c62f545ac",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "8558b6572a9683a7",
        "group": "87cbdbc793c5b9c7",
        "name": "Program feed",
        "order": 53,
        "width": 3,
        "height": 1,
        "format": "<div >Program feed</div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 1280,
        "y": 3780,
        "wires": [
            []
        ]
    },
    {
        "id": "f61c97a085687e51",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "8558b6572a9683a7",
        "group": "87cbdbc793c5b9c7",
        "name": "Actual feed",
        "order": 54,
        "width": 3,
        "height": 1,
        "format": "<div >Actual feed</div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 1270,
        "y": 4120,
        "wires": [
            []
        ]
    },
    {
        "id": "638a6a129a79fea3",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "8558b6572a9683a7",
        "group": "87cbdbc793c5b9c7",
        "name": "Override",
        "order": 55,
        "width": 2,
        "height": 1,
        "format": "<div >Override</div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 1260,
        "y": 3900,
        "wires": [
            []
        ]
    },
    {
        "id": "0ea69a5daf11d007",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "8558b6572a9683a7",
        "group": "87cbdbc793c5b9c7",
        "name": "Override value",
        "order": 60,
        "width": 2,
        "height": 1,
        "format": "<div>{{msg.payload}}% </div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2060,
        "y": 3960,
        "wires": [
            []
        ]
    },
    {
        "id": "bdd33c3a497a913d",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "8558b6572a9683a7",
        "group": "87cbdbc793c5b9c7",
        "name": "F+unit display",
        "order": 52,
        "width": 2,
        "height": 1,
        "format": "<div >F {{msg.payload}} </div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2060,
        "y": 3780,
        "wires": [
            []
        ]
    },
    {
        "id": "7b617ddadd7dd6c2",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "8558b6572a9683a7",
        "name": "Read  velocity unit",
        "func": "var newMsg = {};\nnewMsg.payload = msg.payload.lim.velUnit;\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1670,
        "y": 3780,
        "wires": [
            [
                "bdd33c3a497a913d"
            ]
        ]
    },
    {
        "id": "5e47db9055712cda",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "8558b6572a9683a7",
        "name": "actual velocity value",
        "func": "var newMsg = {};\nnewMsg.payload = msg.payload.toFixed(4); \nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1680,
        "y": 4180,
        "wires": [
            [
                "60a617de51b30d6e"
            ]
        ]
    },
    {
        "id": "24271716a68a1631",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "8558b6572a9683a7",
        "name": "Read override",
        "func": "var newMsg = {};\nvar over= msg.payload.toFixed(2)\nnewMsg.payload = over*100;\nnewMsg.payload = newMsg.payload.toFixed(0);\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1660,
        "y": 3960,
        "wires": [
            [
                "0ea69a5daf11d007"
            ]
        ]
    },
    {
        "id": "adca028ed7a56b95",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "name": "Switch to operating page",
        "info": "",
        "x": 630,
        "y": 4840,
        "wires": []
    },
    {
        "id": "e57ba554e01a439b",
        "type": "inject",
        "z": "e7734a74f031c3a8",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "1",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 650,
        "y": 2840,
        "wires": [
            [
                "07a8e270278415a1",
                "32b2b12b6b472039",
                "c3c46fa818a06f47",
                "89db7582fbaa3db5",
                "fa7de706b4a7b899",
                "3226f4f1a64ff838",
                "ad8c78c148465a48",
                "4f62267ac9a0d254",
                "2a7aa3b5112d189b"
            ]
        ]
    },
    {
        "id": "49ed3ea2078513d4",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "device": "898040a71301c686",
        "method": "msg",
        "path": "",
        "payloadFormat": "value",
        "name": "act-cmd pcs?acs?",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 1730,
        "y": 3400,
        "wires": [
            []
        ]
    },
    {
        "id": "39f32f9248073caf",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "name": "write path of act-cmd/pos",
        "func": "var kineName = global.get(\"gKineNameselected\");\nvar str_start = \"motion/kin/\" + kineName;\nvar str_end = \"/state/values/act-cmd/pos\";\nmsg.method = 'READ';\nmsg.path = str_start +  str_end ;\n\nreturn msg;\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1490,
        "y": 3400,
        "wires": [
            [
                "49ed3ea2078513d4"
            ]
        ]
    },
    {
        "id": "07a8e270278415a1",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "8558b6572a9683a7",
        "name": "set properties",
        "func": "//Kinematics_1 / state / values / ipo / pos\n//var kineName = msg.payload.value;\nvar kineName = global.get(\"gKineNameselected\");\nvar str_start = \"motion/kin/\" + kineName;\nvar str_end = \"/state/values/override\";\nmsg.method = 'READ';\nmsg.path = str_start +  str_end ;\n\nreturn msg;\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1020,
        "y": 3960,
        "wires": [
            [
                "68a6ecdfe600a956"
            ]
        ]
    },
    {
        "id": "68a6ecdfe600a956",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "8558b6572a9683a7",
        "device": "898040a71301c686",
        "method": "msg",
        "path": "",
        "payloadFormat": "value",
        "name": "override",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 1260,
        "y": 3960,
        "wires": [
            [
                "24271716a68a1631"
            ]
        ]
    },
    {
        "id": "32b2b12b6b472039",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "8558b6572a9683a7",
        "name": "set properties",
        "func": "//Kinematics_1 / state / values / ipo / pos\n//var kineName = msg.payload.value;\nvar kineName = global.get(\"gKineNameselected\");\nvar str_start = \"motion/kin/\" + kineName;\nvar str_end = \"/state/values/ipo/vel\";\nmsg.method = 'READ';\nmsg.path = str_start +  str_end ;\n\nreturn msg;\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1000,
        "y": 4180,
        "wires": [
            [
                "ac57ba75c40f4fb4"
            ]
        ]
    },
    {
        "id": "ac57ba75c40f4fb4",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "8558b6572a9683a7",
        "device": "898040a71301c686",
        "method": "msg",
        "path": "",
        "payloadFormat": "value",
        "name": "ipo/vel",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 1250,
        "y": 4180,
        "wires": [
            [
                "5e47db9055712cda"
            ]
        ]
    },
    {
        "id": "fcae70ace1526257",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "name": "motion/kin/Kinematics_1/state/values/ipo/vel",
        "info": "",
        "x": 670,
        "y": 4160,
        "wires": []
    },
    {
        "id": "71c073eeda2a5e65",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "name": "motion/kin/Kinematics_1/state/values/override",
        "info": "",
        "x": 650,
        "y": 3980,
        "wires": []
    },
    {
        "id": "f93ad340590acb1a",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "g": "54f0b75734ba2c78",
        "name": "motion/kin/Kinematics_1/state/values/ipo/pos",
        "info": "",
        "x": 1150,
        "y": 2780,
        "wires": []
    },
    {
        "id": "1e52f42238a9f652",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "name": "motion/kin/Kinematics_1/state/values/act-cmd",
        "info": "",
        "x": 1110,
        "y": 3420,
        "wires": []
    },
    {
        "id": "c3c46fa818a06f47",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "adb95d965ba4df87",
        "name": "set properties",
        "func": "//Kinematics_1 / state / values / ipo / pos\n//var kineName = msg.payload.value;\nvar kineName = global.get(\"gKineNameselected\");\nvar str_start = \"motion/kin/\" + kineName;\nvar str_end = \"/state/diag/cmd-opt-active\";\nmsg.method = 'READ';\nmsg.path = str_start +  str_end ;\n\nreturn msg;\n\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1020,
        "y": 4560,
        "wires": [
            [
                "5d081fa2df2580f7"
            ]
        ]
    },
    {
        "id": "5d081fa2df2580f7",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "adb95d965ba4df87",
        "device": "898040a71301c686",
        "method": "msg",
        "path": "",
        "payloadFormat": "value",
        "name": "cmd-opt-active",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 1260,
        "y": 4560,
        "wires": [
            [
                "d4a0ec5982766f4b"
            ]
        ]
    },
    {
        "id": "89db7582fbaa3db5",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "696cb6d91aa73313",
        "name": "set properties",
        "func": "//Kinematics_1 / state / values / ipo / pos\n//var kineName = msg.payload.value;\nvar kineName = global.get(\"gKineNameselected\");\nvar str_start = \"motion/kin/\" + kineName;\nvar str_end = \"/state/values/ipo-add/dist-to-target\";\nmsg.method = 'READ';\nmsg.path = str_start +  str_end ;\n\nreturn msg;\n\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1020,
        "y": 4720,
        "wires": [
            [
                "5c2c75c5e19a9294"
            ]
        ]
    },
    {
        "id": "5c2c75c5e19a9294",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "696cb6d91aa73313",
        "device": "898040a71301c686",
        "method": "msg",
        "path": "",
        "payloadFormat": "value",
        "name": "dist-to-target",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 1270,
        "y": 4720,
        "wires": [
            [
                "c5c9aedb5da431ed"
            ]
        ]
    },
    {
        "id": "b56af489c29cd498",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "name": "motion/kin/Kinematics_1/state/diag/cmd-opt-active",
        "info": "",
        "x": 670,
        "y": 4500,
        "wires": []
    },
    {
        "id": "330e001545cc22ee",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "name": "motion/kin/Kinematics_1/state/values/ipo-add/dist-to-target",
        "info": "",
        "x": 690,
        "y": 4640,
        "wires": []
    },
    {
        "id": "70fa60eee5856bb1",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "54f0b75734ba2c78",
        "device": "898040a71301c686",
        "method": "WRITE",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stInputData/activeCmdSrc",
        "payloadFormat": "value_type",
        "name": "",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 2750,
        "y": 3640,
        "wires": [
            []
        ]
    },
    {
        "id": "4433dfdba6bff090",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "54f0b75734ba2c78",
        "name": "src/name",
        "func": "var newMsg = {};\nnewMsg.value = msg.payload.src.name;\nnewMsg.payload = { \"type\": \"string\", \"value\": newMsg.value };\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2120,
        "y": 3640,
        "wires": [
            [
                "70fa60eee5856bb1"
            ]
        ]
    },
    {
        "id": "7dfd1000571b5f39",
        "type": "change",
        "z": "e7734a74f031c3a8",
        "g": "387989b8d680bfcd",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "{\"group\":{\"hide\":[\"HMI-Operating_NC_Program\"],\"show\":[\"HMI-Operating_Active_NC_Blocks\"]}}",
                "tot": "json"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1960,
        "y": 4980,
        "wires": [
            [
                "303a899cf6724ff8"
            ]
        ]
    },
    {
        "id": "707e38070d887b65",
        "type": "change",
        "z": "e7734a74f031c3a8",
        "g": "387989b8d680bfcd",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "{\"group\":{\"hide\":[\"HMI-Operating_Active_NC_Blocks\"],\"show\":[\"HMI-Operating_NC_Program\"]}}",
                "tot": "json"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1960,
        "y": 5080,
        "wires": [
            [
                "303a899cf6724ff8"
            ]
        ]
    },
    {
        "id": "303a899cf6724ff8",
        "type": "ui_ui_control",
        "z": "e7734a74f031c3a8",
        "g": "387989b8d680bfcd",
        "name": "",
        "events": "change",
        "x": 2200,
        "y": 5040,
        "wires": [
            []
        ]
    },
    {
        "id": "8bbd636bc3f6aa30",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "g": "387989b8d680bfcd",
        "name": "Switch readline/Programlist",
        "info": "",
        "x": 1050,
        "y": 4840,
        "wires": []
    },
    {
        "id": "e119819bdfd2f98a",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "g": "387989b8d680bfcd",
        "name": "switch read line/progList",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "DISABLE",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "READY",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "RUNNING",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "PAUSE",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "ERROR",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 5,
        "x": 1670,
        "y": 4920,
        "wires": [
            [
                "707e38070d887b65"
            ],
            [
                "707e38070d887b65"
            ],
            [
                "7dfd1000571b5f39",
                "e542608cc06a390f"
            ],
            [
                "7dfd1000571b5f39",
                "e542608cc06a390f"
            ],
            []
        ]
    },
    {
        "id": "df5cfc5aaa5681a0",
        "type": "ctrlx-datalayer-subscribe",
        "z": "e7734a74f031c3a8",
        "g": "387989b8d680bfcd",
        "subscription": "f7c02d1bfc87bc1e",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/stUiState",
        "name": "",
        "inputs": 0,
        "x": 1110,
        "y": 4940,
        "wires": [
            [
                "e119819bdfd2f98a"
            ]
        ]
    },
    {
        "id": "6ab4ce6dc8b8ebad",
        "type": "ui_toast",
        "z": "e7734a74f031c3a8",
        "position": "top right",
        "displayTime": "60",
        "highlight": "",
        "sendall": true,
        "outputs": 0,
        "ok": "OK",
        "cancel": "Cancel",
        "raw": false,
        "className": "",
        "topic": "Please select one valid kinematics!",
        "name": "",
        "x": 1130,
        "y": 20,
        "wires": []
    },
    {
        "id": "fe9db6ab74dc488f",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "67e59e8c7f51bd5b",
        "name": "command pos of axis[Idex_0]/X :",
        "func": "var newMsg = {};\n\nvar i ;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\")\n{\n    i = global.get(\"Idex_0\");\n}\nelse\n{\n     i = 0;  //X\n}\n\nnewMsg.payload = msg.payload.units[i];\nreturn newMsg;\n\n\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2110,
        "y": 2300,
        "wires": [
            [
                "90883accff360411"
            ]
        ]
    },
    {
        "id": "572ac307c318634f",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "67e59e8c7f51bd5b",
        "name": "command pos of axis[Idex_1]/Y :",
        "func": "var newMsg = {};\nvar i ;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\")\n{\n    i = global.get(\"Idex_1\");\n}\nelse\n{\n     i = 1;  //Y\n}\nnewMsg.payload = msg.payload.units[i];\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2110,
        "y": 2360,
        "wires": [
            [
                "8036c0e6a02a3ea3"
            ]
        ]
    },
    {
        "id": "c319d5af856aa681",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "67e59e8c7f51bd5b",
        "name": "command pos of axis[Idex_2]/Z :",
        "func": "var newMsg = {};\nvar i ;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\")\n{\n    i = global.get(\"Idex_2\");\n}\nelse\n{\n     i = 2;  //Z\n}\nnewMsg.payload = msg.payload.units[i];\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2110,
        "y": 2420,
        "wires": [
            [
                "f90520dd418cd5ac"
            ]
        ]
    },
    {
        "id": "4891678c49043c93",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "67e59e8c7f51bd5b",
        "name": "command pos of axis[Idex_6] / FREE_AXIS_7:",
        "func": "var newMsg = {};\nvar i ;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\")\n{\n    i = global.get(\"Idex_6\");\n}\nelse\n{\n     i = 6;  //FREE_AXIS_7\n}\n\n\nnewMsg.payload = msg.payload.units[i];\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2160,
        "y": 2660,
        "wires": [
            [
                "14fec817526f72b7"
            ]
        ]
    },
    {
        "id": "8036c0e6a02a3ea3",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "67e59e8c7f51bd5b",
        "group": "87cbdbc793c5b9c7",
        "name": "unit of axis Idex_1/Y",
        "order": 16,
        "width": 2,
        "height": 1,
        "format": "<div> {{msg.payload}}</div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2500,
        "y": 2360,
        "wires": [
            []
        ]
    },
    {
        "id": "f90520dd418cd5ac",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "67e59e8c7f51bd5b",
        "group": "87cbdbc793c5b9c7",
        "name": "unit of axis Idex_2/Z",
        "order": 22,
        "width": 2,
        "height": 1,
        "format": "<div> {{msg.payload}}</div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2500,
        "y": 2420,
        "wires": [
            []
        ]
    },
    {
        "id": "14fec817526f72b7",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "67e59e8c7f51bd5b",
        "group": "87cbdbc793c5b9c7",
        "name": "unit of axis Idex_6/FREE_AXIS_7",
        "order": 46,
        "width": 2,
        "height": 1,
        "format": "<div> {{msg.payload}}</div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2540,
        "y": 2660,
        "wires": [
            []
        ]
    },
    {
        "id": "fa7de706b4a7b899",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "5502ea8d8aca7d14",
        "name": "write path of kinematics state",
        "func": "//Kinematics_1 / state / values / ipo / pos\n//var kineName = msg.payload.value;\nvar kineName = global.get(\"gKineNameselected\");\nvar str_start = \"motion/kin/\" + kineName;\nvar str_end = \"/state/opstate/plcopen\";\nmsg.method = 'READ';\nmsg.path = str_start +  str_end ;\n\nreturn msg;\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1060,
        "y": 4300,
        "wires": [
            [
                "5a3b5453efb67c38"
            ]
        ]
    },
    {
        "id": "3226f4f1a64ff838",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "5502ea8d8aca7d14",
        "name": "write path of kinematics state",
        "func": "//Kinematics_1 / state / values / ipo / pos\n//var kineName = msg.payload.value;\nvar kineName = global.get(\"gKineNameselected\");\nvar str_start = \"script/instances/\" + kineName;\nvar str_end = \"/state/opstate\";\nmsg.method = 'READ';\nmsg.path = str_start +  str_end ;\n\nreturn msg;\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1060,
        "y": 4360,
        "wires": [
            [
                "f8eb14ae358a11e3"
            ]
        ]
    },
    {
        "id": "f8eb14ae358a11e3",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "5502ea8d8aca7d14",
        "device": "898040a71301c686",
        "method": "msg",
        "path": "",
        "payloadFormat": "value",
        "name": "instances state",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 1340,
        "y": 4360,
        "wires": [
            [
                "263dedd3d16eb6d1",
                "aefb4cba8b13295d"
            ]
        ]
    },
    {
        "id": "263dedd3d16eb6d1",
        "type": "ui_text",
        "z": "e7734a74f031c3a8",
        "g": "5502ea8d8aca7d14",
        "group": "87cbdbc793c5b9c7",
        "order": 68,
        "width": 4,
        "height": 1,
        "name": "",
        "label": "Instances  state:",
        "format": "{{msg.payload}}",
        "layout": "row-right",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": 16,
        "color": "#000000",
        "x": 2060,
        "y": 4360,
        "wires": []
    },
    {
        "id": "df43128c8de43dea",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "g": "5502ea8d8aca7d14",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "ERRORSTOP",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 2330,
        "y": 4300,
        "wires": [
            []
        ]
    },
    {
        "id": "7ae9d99f33c8e354",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "g": "5502ea8d8aca7d14",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "ERROR",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 2330,
        "y": 4360,
        "wires": [
            []
        ]
    },
    {
        "id": "e9db76d7732febf5",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "5502ea8d8aca7d14",
        "name": "set 'KineState'",
        "func": "var newMsg={} ; \nglobal.set(\"KineState\", msg.payload);\nnewMsg.payload =  msg.payload ;\nreturn newMsg;\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1660,
        "y": 4280,
        "wires": [
            []
        ]
    },
    {
        "id": "aefb4cba8b13295d",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "5502ea8d8aca7d14",
        "name": "set 'InstanceState'",
        "func": "var newMsg={} ; \nglobal.set(\"InstState\", msg.payload);\nnewMsg.payload =  msg.payload ;\nreturn newMsg;\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1670,
        "y": 4400,
        "wires": [
            []
        ]
    },
    {
        "id": "2a7aa3b5112d189b",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "5ca340fca2eefe18",
        "name": "write path of ipo/pos/  Read \"gCoord\"",
        "func": "//Kinematics_1 / state / values / ipo / pos\n//var kineName = msg.payload.value;\nvar kineName = global.get(\"gKineNameselected\");\nvar actCoordinate = global.get(\"gCoordinate\");\nvar str_start = \"motion/kin/\" + kineName;\nvar str_end = \"/state/values/ipo/pos/pcs\";\nglobal.set(\"gCoord\", \"PCS\")\nif (actCoordinate != null)\n{\n    str_end = \"/state/values/ipo/pos/\"+actCoordinate;\n    global.set(\"gCoord\", actCoordinate)\n}\nmsg.method = 'READ';\nmsg.path = str_start +  str_end ;\n\nreturn msg;\n\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1550,
        "y": 2880,
        "wires": [
            [
                "a1ed3b527a0ef0df"
            ]
        ]
    },
    {
        "id": "a1ed3b527a0ef0df",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "5ca340fca2eefe18",
        "device": "898040a71301c686",
        "method": "msg",
        "path": "",
        "payloadFormat": "value",
        "name": "ipo/pos/pcs?acs?",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 1830,
        "y": 2900,
        "wires": [
            [
                "7f0f81e7434f181c",
                "1360e8d68fdae2de",
                "97966981b7e95a1e",
                "d9d417ce9dedbfdf",
                "4891678c49043c93",
                "c319d5af856aa681",
                "572ac307c318634f",
                "fe9db6ab74dc488f",
                "44bd7c08932d1a69",
                "03ce385ddac1174d",
                "93aed2a48633cda5",
                "6c36690ec3718ffe",
                "b7fba124eace5d74",
                "45185365de158579"
            ]
        ]
    },
    {
        "id": "ad8c78c148465a48",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "name": "write path of act-cmd",
        "func": "var kineName = global.get(\"gKineNameselected\");\nvar str_start = \"motion/kin/\" + kineName;\nvar str_end = \"/state/values/act-cmd\";\nmsg.method = 'READ';\nmsg.path = str_start +  str_end ;\n\nreturn msg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1500,
        "y": 3480,
        "wires": [
            [
                "c7320cbbec35c1f5"
            ]
        ]
    },
    {
        "id": "c7320cbbec35c1f5",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "device": "898040a71301c686",
        "method": "msg",
        "path": "",
        "payloadFormat": "value",
        "name": "act-cmd",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 1700,
        "y": 3480,
        "wires": [
            [
                "4433dfdba6bff090",
                "7b617ddadd7dd6c2",
                "5ed17be5f13797dd",
                "b83fa92bf50b4794",
                "a24dc187fd266e53",
                "dfd2509cc657fc94",
                "90337085aff3b07f",
                "142689b6be094f75",
                "1dfa711726310f3b",
                "4b64083a4616b35b",
                "ba48e55fb6283d87"
            ]
        ]
    },
    {
        "id": "f03079f319933b67",
        "type": "ui_button",
        "z": "e7734a74f031c3a8",
        "name": "F1",
        "group": "87cbdbc793c5b9c7",
        "order": 77,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 590,
        "y": 5220,
        "wires": [
            []
        ]
    },
    {
        "id": "87acfec462127d55",
        "type": "ui_button",
        "z": "e7734a74f031c3a8",
        "name": "F2",
        "group": "87cbdbc793c5b9c7",
        "order": 78,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 590,
        "y": 5280,
        "wires": [
            []
        ]
    },
    {
        "id": "46f8ae93d3eb356f",
        "type": "ui_button",
        "z": "e7734a74f031c3a8",
        "name": "F3",
        "group": "87cbdbc793c5b9c7",
        "order": 79,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 590,
        "y": 5340,
        "wires": [
            []
        ]
    },
    {
        "id": "e031f70d3440783e",
        "type": "ui_button",
        "z": "e7734a74f031c3a8",
        "name": "F4",
        "group": "87cbdbc793c5b9c7",
        "order": 80,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 590,
        "y": 5400,
        "wires": [
            []
        ]
    },
    {
        "id": "931e517ba577a4f4",
        "type": "ui_button",
        "z": "e7734a74f031c3a8",
        "g": "a0b2719f799cd15f",
        "name": "F6-ACS",
        "group": "87cbdbc793c5b9c7",
        "order": 82,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "{{background}}",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 1700,
        "y": 5420,
        "wires": [
            []
        ]
    },
    {
        "id": "0cdfb63bf7b6fc06",
        "type": "ui_button",
        "z": "e7734a74f031c3a8",
        "g": "a0b2719f799cd15f",
        "name": "F5-PCS",
        "group": "87cbdbc793c5b9c7",
        "order": 81,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "PCS",
        "tooltip": "",
        "color": "",
        "bgcolor": "{{background}}",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 1700,
        "y": 5280,
        "wires": [
            [
                "ec586d7b609c33bd"
            ]
        ]
    },
    {
        "id": "5a577119381acf3d",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "a0b2719f799cd15f",
        "name": "set 'gKineNameselected'",
        "func": "var newMsg={} ; \nif (msg.payload != null) { \n    newMsg.payload =  msg.payload ;\n}\n global.set(\"gCoordinate\", newMsg.payload)\nreturn newMsg;\n\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2190,
        "y": 5340,
        "wires": [
            []
        ]
    },
    {
        "id": "ec586d7b609c33bd",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "a0b2719f799cd15f",
        "name": "PCS",
        "func": "var newMsg={} ; \nnewMsg.payload = 'pcs';\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1930,
        "y": 5280,
        "wires": [
            [
                "5a577119381acf3d"
            ]
        ]
    },
    {
        "id": "2f8ccf3f9215e99a",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "a0b2719f799cd15f",
        "name": "ACS",
        "func": "var newMsg={} ; \nnewMsg.payload = 'acs';\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1930,
        "y": 5420,
        "wires": [
            [
                "5a577119381acf3d"
            ]
        ]
    },
    {
        "id": "b3ad93927826aa4e",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "a0b2719f799cd15f",
        "name": "green light hold",
        "func": "var newMsg = {};\nnewMsg.background = \"green\";\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1400,
        "y": 5280,
        "wires": [
            [
                "0cdfb63bf7b6fc06"
            ]
        ]
    },
    {
        "id": "88a5926bc279186b",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "a0b2719f799cd15f",
        "name": "lake blue light hold",
        "func": "var newMsg = {};\nnewMsg.background = \"lake blue\";\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1410,
        "y": 5340,
        "wires": [
            [
                "0cdfb63bf7b6fc06"
            ]
        ]
    },
    {
        "id": "4f62267ac9a0d254",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "a0b2719f799cd15f",
        "name": "function 3",
        "func": "\n\nvar newMsg = {};\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\")\n{\n    newMsg.payload =\"ACS\"\n}\nelse\n{\n    newMsg.payload = \"PCS\"\n}\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1000,
        "y": 5200,
        "wires": [
            [
                "69aeb5c6c75318ec",
                "df57f137af2405aa"
            ]
        ]
    },
    {
        "id": "69aeb5c6c75318ec",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "g": "a0b2719f799cd15f",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "PCS",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "ACS",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 1170,
        "y": 5280,
        "wires": [
            [
                "b3ad93927826aa4e",
                "bc78eac37132daf9"
            ],
            [
                "88a5926bc279186b",
                "eac59097800dd2cd"
            ]
        ]
    },
    {
        "id": "eac59097800dd2cd",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "a0b2719f799cd15f",
        "name": "green light hold",
        "func": "var newMsg = {};\nnewMsg.background = \"green\";\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1400,
        "y": 5420,
        "wires": [
            [
                "931e517ba577a4f4"
            ]
        ]
    },
    {
        "id": "bc78eac37132daf9",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "a0b2719f799cd15f",
        "name": "lake blue light hold",
        "func": "var newMsg = {};\nnewMsg.background = \"lake blue\";\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1410,
        "y": 5480,
        "wires": [
            [
                "931e517ba577a4f4"
            ]
        ]
    },
    {
        "id": "df57f137af2405aa",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "a0b2719f799cd15f",
        "group": "87cbdbc793c5b9c7",
        "name": "pcs?acs?  HMI-Pos",
        "order": 3,
        "width": 2,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 1390,
        "y": 5200,
        "wires": [
            []
        ]
    },
    {
        "id": "050779f939fa298d",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "name": "function 6",
        "func": "\n\nvar newMsg = {};\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\")\n{\n    newMsg.payload =\"ACS\"\n}\nelse\n{\n    newMsg.payload = \"PCS\"\n}\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 620,
        "y": 700,
        "wires": [
            [
                "3d66dfc81fe6ee7c"
            ]
        ]
    },
    {
        "id": "3d66dfc81fe6ee7c",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "ACS",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "PCS",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 810,
        "y": 700,
        "wires": [
            [
                "55103aea11476a59",
                "c2ab4654f2fce944",
                "a51d2ec1fc1efd7e",
                "410f86938150f144",
                "ff768c24c7e42be4",
                "5175674033687c8a",
                "7863d427f46408af",
                "1c43930400c091f9",
                "f634eed30e7ec00e",
                "f9548332960bf6e7",
                "cdad157a2af8f6ad",
                "5a5f7f76189d96e1",
                "952dc0daf8335f57",
                "18858baaa651bf51"
            ],
            [
                "defc2cecef52645b",
                "0bac97e2df07e266",
                "2dfaa35848f115b1",
                "215038051fa829b5",
                "9ab1b2f2fd231ba6",
                "fb9be41c994a567b",
                "3d4b6c560f36d060",
                "31f745f3ae7d75ab"
            ]
        ]
    },
    {
        "id": "5c95e906b75be0b7",
        "type": "inject",
        "z": "e7734a74f031c3a8",
        "name": "Timestamp",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "1",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 430,
        "y": 700,
        "wires": [
            [
                "050779f939fa298d",
                "01500eba3aaac4f5"
            ]
        ]
    },
    {
        "id": "50baaeadb2022688",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "group": "87cbdbc793c5b9c7",
        "name": "AxisName_1",
        "order": 15,
        "width": 2,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 3730,
        "y": 600,
        "wires": [
            []
        ]
    },
    {
        "id": "268e6c94910c9964",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "group": "87cbdbc793c5b9c7",
        "name": "AxisName_2",
        "order": 21,
        "width": 2,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 3730,
        "y": 680,
        "wires": [
            []
        ]
    },
    {
        "id": "4f384667d8aa1457",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "group": "87cbdbc793c5b9c7",
        "name": "AxisName_3",
        "order": 27,
        "width": 2,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 3730,
        "y": 760,
        "wires": [
            []
        ]
    },
    {
        "id": "370c54798d816693",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "group": "87cbdbc793c5b9c7",
        "name": "AxisName_0",
        "order": 9,
        "width": 2,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 3730,
        "y": 520,
        "wires": [
            []
        ]
    },
    {
        "id": "812bcedd5d87d40d",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "ACS: Axes name",
        "info": "",
        "x": 2660,
        "y": 520,
        "wires": []
    },
    {
        "id": "f6342335823dcdfa",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "nempty"
            },
            {
                "t": "empty"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 3290,
        "y": 680,
        "wires": [
            [
                "268e6c94910c9964",
                "cec666af7bb97422"
            ],
            [
                "bf7e2eea234a7cce"
            ]
        ]
    },
    {
        "id": "324d295b567dc1cd",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "nempty"
            },
            {
                "t": "empty"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 3290,
        "y": 760,
        "wires": [
            [
                "4f384667d8aa1457",
                "70d00a0162dac603"
            ],
            [
                "aff749a2b6258409"
            ]
        ]
    },
    {
        "id": "aa4072a78b3a596a",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "nempty"
            },
            {
                "t": "empty"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 3290,
        "y": 520,
        "wires": [
            [
                "370c54798d816693",
                "b21825776648a313"
            ],
            [
                "e234a13e1788caf7"
            ]
        ]
    },
    {
        "id": "e234a13e1788caf7",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "TrigAxis0 is false",
        "func": "var newMsg = {};\nnewMsg.payload = '/';\nglobal.set(\"TrigAxis0\",false);\nreturn newMsg;\n\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 3490,
        "y": 540,
        "wires": [
            [
                "370c54798d816693"
            ]
        ]
    },
    {
        "id": "baa6382d924b08c9",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "nempty"
            },
            {
                "t": "empty"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 3290,
        "y": 600,
        "wires": [
            [
                "50baaeadb2022688",
                "75a56c01fa3bfc8c"
            ],
            [
                "9c68071bb02ea508"
            ]
        ]
    },
    {
        "id": "aff749a2b6258409",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "TrigAxis3 is false",
        "func": "var newMsg = {};\nnewMsg.payload = '/';\nglobal.set(\"TrigAxis3\",false);\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 3490,
        "y": 780,
        "wires": [
            [
                "4f384667d8aa1457"
            ]
        ]
    },
    {
        "id": "bf7e2eea234a7cce",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "TrigAxis2 is false",
        "func": "var newMsg = {};\nnewMsg.payload = '/';\nglobal.set(\"TrigAxis2\", false);\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 3490,
        "y": 700,
        "wires": [
            [
                "268e6c94910c9964"
            ]
        ]
    },
    {
        "id": "9c68071bb02ea508",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "TrigAxis1 is false",
        "func": "var newMsg = {};\nnewMsg.payload = '/';\nglobal.set(\"TrigAxis1\",false);\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 3490,
        "y": 620,
        "wires": [
            [
                "50baaeadb2022688"
            ]
        ]
    },
    {
        "id": "55103aea11476a59",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/GroupedAxisLlist/0/Name",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 2990,
        "y": 520,
        "wires": [
            [
                "aa4072a78b3a596a"
            ]
        ]
    },
    {
        "id": "c2ab4654f2fce944",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/GroupedAxisLlist/1/Name",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 2990,
        "y": 600,
        "wires": [
            [
                "baa6382d924b08c9"
            ]
        ]
    },
    {
        "id": "a51d2ec1fc1efd7e",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/GroupedAxisLlist/2/Name",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 2990,
        "y": 680,
        "wires": [
            [
                "f6342335823dcdfa"
            ]
        ]
    },
    {
        "id": "410f86938150f144",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/GroupedAxisLlist/3/Name",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 2990,
        "y": 760,
        "wires": [
            [
                "324d295b567dc1cd"
            ]
        ]
    },
    {
        "id": "5069e2a11b50dc23",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "g": "1020be78e174b92e",
        "name": "PCS: Axes name",
        "info": "",
        "x": 1260,
        "y": 980,
        "wires": []
    },
    {
        "id": "defc2cecef52645b",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "1020be78e174b92e",
        "name": "X",
        "func": "var newMsg = {};\nnewMsg.payload = 'X';\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1430,
        "y": 980,
        "wires": [
            [
                "370c54798d816693"
            ]
        ]
    },
    {
        "id": "0bac97e2df07e266",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "1020be78e174b92e",
        "name": "Y",
        "func": "var newMsg = {};\nnewMsg.payload = 'Y';\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1570,
        "y": 980,
        "wires": [
            [
                "50baaeadb2022688"
            ]
        ]
    },
    {
        "id": "2dfaa35848f115b1",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "1020be78e174b92e",
        "name": "Z",
        "func": "var newMsg = {};\nnewMsg.payload = 'Z';\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1710,
        "y": 980,
        "wires": [
            [
                "268e6c94910c9964"
            ]
        ]
    },
    {
        "id": "215038051fa829b5",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "1020be78e174b92e",
        "name": "FREE_AXIS_7",
        "func": "var newMsg = {};\nnewMsg.payload = 'FREE_AXIS_7';\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2300,
        "y": 980,
        "wires": [
            [
                "60aeb987c61517b0"
            ]
        ]
    },
    {
        "id": "67dd3efe0436b86f",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "group": "87cbdbc793c5b9c7",
        "name": "the second axis state",
        "order": 19,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2520,
        "y": 1360,
        "wires": [
            []
        ]
    },
    {
        "id": "5746eeba60d69890",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "group": "87cbdbc793c5b9c7",
        "name": "the third axis  state",
        "order": 25,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2510,
        "y": 1560,
        "wires": [
            []
        ]
    },
    {
        "id": "18851f46a77e19c7",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "group": "87cbdbc793c5b9c7",
        "name": "the fourth axis state",
        "order": 31,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2510,
        "y": 1660,
        "wires": [
            []
        ]
    },
    {
        "id": "0732d9167ab3da7b",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "group": "87cbdbc793c5b9c7",
        "name": "the first axis state",
        "order": 13,
        "width": 3,
        "height": 1,
        "format": "\n<div>\n    {{msg.payload}}\n</div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2510,
        "y": 1200,
        "wires": [
            []
        ]
    },
    {
        "id": "34b0408fade3ab12",
        "type": "comment",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "ACS: Axes state",
        "info": "",
        "x": 1060,
        "y": 1240,
        "wires": []
    },
    {
        "id": "fe63404dcc2e8b49",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "10",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "0",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "2",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "6",
                "vt": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 4,
        "x": 1790,
        "y": 1360,
        "wires": [
            [
                "b4f4308bf25770fc"
            ],
            [
                "4a44d59777b54abc"
            ],
            [
                "4a44d59777b54abc"
            ],
            [
                "46f6e93b104bbc94"
            ]
        ]
    },
    {
        "id": "b4f4308bf25770fc",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "state is Error",
        "func": "var newMsg = {};\n    newMsg.payload = 'Error';\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2030,
        "y": 1320,
        "wires": [
            [
                "67dd3efe0436b86f"
            ]
        ]
    },
    {
        "id": "4a44d59777b54abc",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "axis state is disabled",
        "func": "var newMsg = {};\n    newMsg.payload = 'Disabled';\nreturn newMsg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2060,
        "y": 1360,
        "wires": [
            [
                "67dd3efe0436b86f"
            ]
        ]
    },
    {
        "id": "46f6e93b104bbc94",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "axis state is enable",
        "func": "var newMsg = {};\n    newMsg.payload = 'Enable';\nreturn newMsg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2050,
        "y": 1420,
        "wires": [
            [
                "67dd3efe0436b86f"
            ]
        ]
    },
    {
        "id": "ee4d118ddf2e2c6d",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "state is Error",
        "func": "var newMsg = {};\n    newMsg.payload = 'Error';\nreturn newMsg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2030,
        "y": 1480,
        "wires": [
            [
                "5746eeba60d69890"
            ]
        ]
    },
    {
        "id": "81daa20c9a87b86d",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "axis state is disabled",
        "func": "var newMsg = {};\n    newMsg.payload = 'Disabled';\nreturn newMsg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2060,
        "y": 1520,
        "wires": [
            [
                "5746eeba60d69890"
            ]
        ]
    },
    {
        "id": "fa817a43b296f449",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "axis state is enable",
        "func": "var newMsg = {};\n    newMsg.payload = 'Enable';\nreturn newMsg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2050,
        "y": 1580,
        "wires": [
            [
                "5746eeba60d69890"
            ]
        ]
    },
    {
        "id": "10fe5e1d8f791aa9",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "state is Error",
        "func": "var newMsg = {};\n    newMsg.payload = 'Error';\nreturn newMsg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2030,
        "y": 1620,
        "wires": [
            [
                "18851f46a77e19c7"
            ]
        ]
    },
    {
        "id": "e845dec953bf503d",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "axis state is disabled",
        "func": "var newMsg = {};\n    newMsg.payload = 'Disabled';\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2060,
        "y": 1660,
        "wires": [
            [
                "18851f46a77e19c7"
            ]
        ]
    },
    {
        "id": "5eae4e25c93883a0",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "axis state is enable",
        "func": "var newMsg = {};\n    newMsg.payload = 'Enable';\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2050,
        "y": 1700,
        "wires": [
            [
                "18851f46a77e19c7"
            ]
        ]
    },
    {
        "id": "fe652a24903b967b",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "state is Error",
        "func": "var newMsg = {};\n    newMsg.payload = 'Error';\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2030,
        "y": 1200,
        "wires": [
            [
                "0732d9167ab3da7b"
            ]
        ]
    },
    {
        "id": "79c6c09865b7bbc1",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "axis state is disabled",
        "func": "var newMsg = {};\n    newMsg.payload = 'Disabled';\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2060,
        "y": 1240,
        "wires": [
            [
                "0732d9167ab3da7b"
            ]
        ]
    },
    {
        "id": "6e003ab05b10faa6",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "axis state is enable",
        "func": "var newMsg = {};\n    newMsg.payload = 'Enable';\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2050,
        "y": 1280,
        "wires": [
            [
                "0732d9167ab3da7b"
            ]
        ]
    },
    {
        "id": "61d763af644b5246",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "10",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "0",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "2",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "6",
                "vt": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 4,
        "x": 1790,
        "y": 1520,
        "wires": [
            [
                "ee4d118ddf2e2c6d"
            ],
            [
                "81daa20c9a87b86d"
            ],
            [
                "81daa20c9a87b86d"
            ],
            [
                "fa817a43b296f449"
            ]
        ]
    },
    {
        "id": "aa8c38bc884c0621",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "10",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "0",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "2",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "6",
                "vt": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 4,
        "x": 1790,
        "y": 1660,
        "wires": [
            [
                "10fe5e1d8f791aa9"
            ],
            [
                "e845dec953bf503d"
            ],
            [
                "e845dec953bf503d"
            ],
            [
                "5eae4e25c93883a0"
            ]
        ]
    },
    {
        "id": "38e611dd598908bc",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "10",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "0",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "2",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "6",
                "vt": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 4,
        "x": 1790,
        "y": 1240,
        "wires": [
            [
                "fe652a24903b967b"
            ],
            [
                "79c6c09865b7bbc1"
            ],
            [
                "79c6c09865b7bbc1"
            ],
            [
                "6e003ab05b10faa6"
            ]
        ]
    },
    {
        "id": "ff768c24c7e42be4",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/GroupedAxisLlist/0/PLCOpenState",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 1400,
        "y": 1240,
        "wires": [
            [
                "38e611dd598908bc"
            ]
        ]
    },
    {
        "id": "5175674033687c8a",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/GroupedAxisLlist/1/PLCOpenState",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 1400,
        "y": 1360,
        "wires": [
            [
                "fe63404dcc2e8b49"
            ]
        ]
    },
    {
        "id": "7863d427f46408af",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/GroupedAxisLlist/2/PLCOpenState",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 1400,
        "y": 1520,
        "wires": [
            [
                "61d763af644b5246"
            ]
        ]
    },
    {
        "id": "1c43930400c091f9",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/GroupedAxisLlist/3/PLCOpenState",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 1400,
        "y": 1640,
        "wires": [
            [
                "aa8c38bc884c0621"
            ]
        ]
    },
    {
        "id": "38633409d36d4254",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "group": "87cbdbc793c5b9c7",
        "name": "Axis State? Kine State?",
        "order": 7,
        "width": 3,
        "height": 1,
        "format": "<div>\n    {{msg.payload}}\n</div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2510,
        "y": 1100,
        "wires": [
            []
        ]
    },
    {
        "id": "01500eba3aaac4f5",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "name": "Axis State? Kine State?",
        "func": "\n\nvar newMsg = {};\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\")\n{\n    newMsg.payload =\"Axis State\"\n}\nelse\n{\n    newMsg.payload = \"Kine State\"\n}\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1250,
        "y": 1100,
        "wires": [
            [
                "38633409d36d4254"
            ]
        ]
    },
    {
        "id": "9ab1b2f2fd231ba6",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "name": "PCS: Axes state",
        "func": "var newMsg = {};\nvar kinestate = global.get(\"KineState\");\nnewMsg.payload = kinestate;\n\nreturn newMsg;\n\n\n",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1220,
        "y": 1060,
        "wires": [
            [
                "0732d9167ab3da7b",
                "67dd3efe0436b86f",
                "5746eeba60d69890",
                "18851f46a77e19c7",
                "4a806c12457363da",
                "f8d2e81ac760cc0a",
                "8097bf2b694e7387"
            ]
        ]
    },
    {
        "id": "142689b6be094f75",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "54f0b75734ba2c78",
        "name": "ser cmd src info",
        "func": "global.set(\"cmdSrc\", msg.payload.src);",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2140,
        "y": 3680,
        "wires": [
            []
        ]
    },
    {
        "id": "e542608cc06a390f",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "387989b8d680bfcd",
        "name": "running :show latest active program",
        "func": "var newMsg = {};\nnewMsg.payload = global.get(\"LoadedProg\");\nnewMsg.payload = 'gcode / ' + newMsg.payload + ' : ';\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2020,
        "y": 4900,
        "wires": [
            []
        ]
    },
    {
        "id": "5a3b5453efb67c38",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "5502ea8d8aca7d14",
        "device": "898040a71301c686",
        "method": "msg",
        "path": "",
        "payloadFormat": "value",
        "name": "Kine state",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 1320,
        "y": 4300,
        "wires": [
            [
                "e9db76d7732febf5",
                "60bbd927a052b031"
            ]
        ]
    },
    {
        "id": "60bbd927a052b031",
        "type": "ui_text",
        "z": "e7734a74f031c3a8",
        "g": "5502ea8d8aca7d14",
        "group": "87cbdbc793c5b9c7",
        "order": 69,
        "width": 5,
        "height": 1,
        "name": "",
        "label": "Kinematics  state:",
        "format": "{{msg.payload}}",
        "layout": "row-left",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": 16,
        "color": "#000000",
        "x": 2070,
        "y": 4300,
        "wires": []
    },
    {
        "id": "9097168d8956bbde",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "group": "87cbdbc793c5b9c7",
        "name": "AxisName_4",
        "order": 33,
        "width": 2,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 3730,
        "y": 840,
        "wires": [
            []
        ]
    },
    {
        "id": "aa2141f9df991a88",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "nempty"
            },
            {
                "t": "empty"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 3290,
        "y": 840,
        "wires": [
            [
                "9097168d8956bbde",
                "02081cd807b2a57c"
            ],
            [
                "fd1aa54a7ecba64e"
            ]
        ]
    },
    {
        "id": "fd1aa54a7ecba64e",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "TrigAxis4 is false",
        "func": "var newMsg = {};\nnewMsg.payload = '/';\nglobal.set(\"TrigAxis4\",false);\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 3490,
        "y": 860,
        "wires": [
            [
                "9097168d8956bbde"
            ]
        ]
    },
    {
        "id": "f634eed30e7ec00e",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/GroupedAxisLlist/4/Name",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 2990,
        "y": 840,
        "wires": [
            [
                "aa2141f9df991a88"
            ]
        ]
    },
    {
        "id": "06393b8041ca32ac",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "group": "87cbdbc793c5b9c7",
        "name": "AxisName_5",
        "order": 39,
        "width": 2,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 3730,
        "y": 920,
        "wires": [
            []
        ]
    },
    {
        "id": "37b4c1be5cd5df64",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "nempty"
            },
            {
                "t": "empty"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 3290,
        "y": 920,
        "wires": [
            [
                "06393b8041ca32ac",
                "73535ab31ea1894d"
            ],
            [
                "a2b56472fe0de821"
            ]
        ]
    },
    {
        "id": "a2b56472fe0de821",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "TrigAxis5 is false",
        "func": "var newMsg = {};\nnewMsg.payload = '/';\nglobal.set(\"TrigAxis5\", false);\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 3490,
        "y": 940,
        "wires": [
            [
                "06393b8041ca32ac"
            ]
        ]
    },
    {
        "id": "f9548332960bf6e7",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/GroupedAxisLlist/5/Name",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 2990,
        "y": 920,
        "wires": [
            [
                "37b4c1be5cd5df64"
            ]
        ]
    },
    {
        "id": "60aeb987c61517b0",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "group": "87cbdbc793c5b9c7",
        "name": "AxisName_6",
        "order": 45,
        "width": 2,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 3730,
        "y": 1000,
        "wires": [
            []
        ]
    },
    {
        "id": "cb292c6ec7bcb2c0",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "nempty"
            },
            {
                "t": "empty"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 3290,
        "y": 1000,
        "wires": [
            [
                "60aeb987c61517b0",
                "e9b98fee96ead489"
            ],
            [
                "cbfe1d58ca7b3c46"
            ]
        ]
    },
    {
        "id": "cbfe1d58ca7b3c46",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "TrigAxis6 is false",
        "func": "var newMsg = {};\nnewMsg.payload = '/';\nglobal.set(\"TrigAxis6\", false);\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 3490,
        "y": 1020,
        "wires": [
            [
                "60aeb987c61517b0"
            ]
        ]
    },
    {
        "id": "cdad157a2af8f6ad",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/GroupedAxisLlist/6/Name",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 2990,
        "y": 1000,
        "wires": [
            [
                "cb292c6ec7bcb2c0"
            ]
        ]
    },
    {
        "id": "fb9be41c994a567b",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "1020be78e174b92e",
        "name": "A",
        "func": "var newMsg = {};\nnewMsg.payload = 'A';\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1850,
        "y": 980,
        "wires": [
            [
                "4f384667d8aa1457"
            ]
        ]
    },
    {
        "id": "3d4b6c560f36d060",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "1020be78e174b92e",
        "name": "B",
        "func": "var newMsg = {};\nnewMsg.payload = 'B';\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1990,
        "y": 980,
        "wires": [
            [
                "9097168d8956bbde"
            ]
        ]
    },
    {
        "id": "31f745f3ae7d75ab",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "1020be78e174b92e",
        "name": "C",
        "func": "var newMsg = {};\nnewMsg.payload = 'C';\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2130,
        "y": 980,
        "wires": [
            [
                "06393b8041ca32ac"
            ]
        ]
    },
    {
        "id": "f8d2e81ac760cc0a",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "group": "87cbdbc793c5b9c7",
        "name": "the six axis state",
        "order": 43,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2500,
        "y": 1920,
        "wires": [
            []
        ]
    },
    {
        "id": "8097bf2b694e7387",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "group": "87cbdbc793c5b9c7",
        "name": "the seven axis  state",
        "order": 49,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2520,
        "y": 2120,
        "wires": [
            []
        ]
    },
    {
        "id": "4a806c12457363da",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "group": "87cbdbc793c5b9c7",
        "name": "the five axis state",
        "order": 37,
        "width": 3,
        "height": 1,
        "format": "\n<div>\n    {{msg.payload}}\n</div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2510,
        "y": 1760,
        "wires": [
            []
        ]
    },
    {
        "id": "6c9776d852895461",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "10",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "0",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "2",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "6",
                "vt": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 4,
        "x": 1790,
        "y": 1920,
        "wires": [
            [
                "8f29707b48ea91d5"
            ],
            [
                "198a2c8750cdc33e"
            ],
            [
                "198a2c8750cdc33e"
            ],
            [
                "8ad74bc637366ed3"
            ]
        ]
    },
    {
        "id": "8f29707b48ea91d5",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "state is Error",
        "func": "var newMsg = {};\n    newMsg.payload = 'Error';\nreturn newMsg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2030,
        "y": 1880,
        "wires": [
            [
                "f8d2e81ac760cc0a"
            ]
        ]
    },
    {
        "id": "198a2c8750cdc33e",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "axis state is disabled",
        "func": "var newMsg = {};\n    newMsg.payload = 'Disabled';\nreturn newMsg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2060,
        "y": 1920,
        "wires": [
            [
                "f8d2e81ac760cc0a"
            ]
        ]
    },
    {
        "id": "8ad74bc637366ed3",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "axis state is enable",
        "func": "var newMsg = {};\n    newMsg.payload = 'Enable';\nreturn newMsg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2050,
        "y": 1980,
        "wires": [
            [
                "f8d2e81ac760cc0a"
            ]
        ]
    },
    {
        "id": "3c04166b3cb5bf07",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "state is Error",
        "func": "var newMsg = {};\n    newMsg.payload = 'Error';\nreturn newMsg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2030,
        "y": 2040,
        "wires": [
            [
                "8097bf2b694e7387"
            ]
        ]
    },
    {
        "id": "9fe92d2d70eba62c",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "axis state is disabled",
        "func": "var newMsg = {};\n    newMsg.payload = 'Disabled';\nreturn newMsg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2060,
        "y": 2080,
        "wires": [
            [
                "8097bf2b694e7387"
            ]
        ]
    },
    {
        "id": "318a3316c919b6d1",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "axis state is enable",
        "func": "var newMsg = {};\n    newMsg.payload = 'Enable';\nreturn newMsg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2050,
        "y": 2140,
        "wires": [
            [
                "8097bf2b694e7387"
            ]
        ]
    },
    {
        "id": "49348548f9883498",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "state is Error",
        "func": "var newMsg = {};\n    newMsg.payload = 'Error';\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2030,
        "y": 1760,
        "wires": [
            [
                "4a806c12457363da"
            ]
        ]
    },
    {
        "id": "173df58bac03104f",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "axis state is disabled",
        "func": "var newMsg = {};\n    newMsg.payload = 'Disabled';\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2060,
        "y": 1800,
        "wires": [
            [
                "4a806c12457363da"
            ]
        ]
    },
    {
        "id": "fece40a32a7ebe61",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "axis state is enable",
        "func": "var newMsg = {};\n    newMsg.payload = 'Enable';\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2050,
        "y": 1840,
        "wires": [
            [
                "4a806c12457363da"
            ]
        ]
    },
    {
        "id": "8eefd274d45c8437",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "10",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "0",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "2",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "6",
                "vt": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 4,
        "x": 1790,
        "y": 2080,
        "wires": [
            [
                "3c04166b3cb5bf07"
            ],
            [
                "9fe92d2d70eba62c"
            ],
            [
                "9fe92d2d70eba62c"
            ],
            [
                "318a3316c919b6d1"
            ]
        ]
    },
    {
        "id": "4de3b60720a53cdd",
        "type": "switch",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "10",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "0",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "2",
                "vt": "num"
            },
            {
                "t": "eq",
                "v": "6",
                "vt": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 4,
        "x": 1790,
        "y": 1800,
        "wires": [
            [
                "49348548f9883498"
            ],
            [
                "173df58bac03104f"
            ],
            [
                "173df58bac03104f"
            ],
            [
                "fece40a32a7ebe61"
            ]
        ]
    },
    {
        "id": "5a5f7f76189d96e1",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/GroupedAxisLlist/4/PLCOpenState",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 1400,
        "y": 1800,
        "wires": [
            [
                "4de3b60720a53cdd"
            ]
        ]
    },
    {
        "id": "952dc0daf8335f57",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/GroupedAxisLlist/5/PLCOpenState",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 1400,
        "y": 1920,
        "wires": [
            [
                "6c9776d852895461"
            ]
        ]
    },
    {
        "id": "18858baaa651bf51",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "g": "e8ddba4d4af61ec5",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/GroupedAxisLlist/6/PLCOpenState",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 1400,
        "y": 2080,
        "wires": [
            [
                "8eefd274d45c8437"
            ]
        ]
    },
    {
        "id": "06e61dfce8f1c902",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "67e59e8c7f51bd5b",
        "group": "87cbdbc793c5b9c7",
        "name": "unit of axis Idex_3/A",
        "order": 28,
        "width": 2,
        "height": 1,
        "format": "<div> {{msg.payload}}</div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2500,
        "y": 2480,
        "wires": [
            []
        ]
    },
    {
        "id": "44bd7c08932d1a69",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "67e59e8c7f51bd5b",
        "name": "command pos of axis[Idex_3]/A :",
        "func": "var newMsg = {};\n\nvar i ;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\")\n{\n    i = global.get(\"Idex_3\");\n}\nelse\n{\n     i = 3;  //X\n}\n\nnewMsg.payload = msg.payload.units[i];\nreturn newMsg;\n\n\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2110,
        "y": 2480,
        "wires": [
            [
                "06e61dfce8f1c902"
            ]
        ]
    },
    {
        "id": "03ce385ddac1174d",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "67e59e8c7f51bd5b",
        "name": "command pos of axis[Idex_4]/B :",
        "func": "var newMsg = {};\nvar i ;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\")\n{\n    i = global.get(\"Idex_4\");\n}\nelse\n{\n     i = 4;  //Y\n}\nnewMsg.payload = msg.payload.units[i];\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2110,
        "y": 2540,
        "wires": [
            [
                "ba7260fe78cc9181"
            ]
        ]
    },
    {
        "id": "93aed2a48633cda5",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "67e59e8c7f51bd5b",
        "name": "command pos of axis[Idex_5]/C :",
        "func": "var newMsg = {};\nvar i ;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\")\n{\n    i = global.get(\"Idex_5\");\n}\nelse\n{\n     i = 5;  //Z\n}\nnewMsg.payload = msg.payload.units[i];\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2120,
        "y": 2600,
        "wires": [
            [
                "415ae50a793d284f"
            ]
        ]
    },
    {
        "id": "ba7260fe78cc9181",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "67e59e8c7f51bd5b",
        "group": "87cbdbc793c5b9c7",
        "name": "unit of axis Idex_4/B",
        "order": 34,
        "width": 2,
        "height": 1,
        "format": "<div> {{msg.payload}}</div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2500,
        "y": 2540,
        "wires": [
            []
        ]
    },
    {
        "id": "415ae50a793d284f",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "67e59e8c7f51bd5b",
        "group": "87cbdbc793c5b9c7",
        "name": "unit of axis Idex_5/C",
        "order": 40,
        "width": 2,
        "height": 1,
        "format": "<div> {{msg.payload}}</div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2500,
        "y": 2600,
        "wires": [
            []
        ]
    },
    {
        "id": "a16286409a3593f4",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "5ca340fca2eefe18",
        "group": "87cbdbc793c5b9c7",
        "name": "ActPos of Axis Idex_3",
        "order": 29,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}}</div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2500,
        "y": 2980,
        "wires": [
            []
        ]
    },
    {
        "id": "3c6af1dd3c5ae2d2",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "5ca340fca2eefe18",
        "group": "87cbdbc793c5b9c7",
        "name": "ActPos of Axis Idex_4",
        "order": 35,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}}</div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2500,
        "y": 3040,
        "wires": [
            []
        ]
    },
    {
        "id": "cf391f3086964479",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "5ca340fca2eefe18",
        "group": "87cbdbc793c5b9c7",
        "name": "ActPos of Axis Idex_5",
        "order": 41,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}}</div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2500,
        "y": 3100,
        "wires": [
            []
        ]
    },
    {
        "id": "6c36690ec3718ffe",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "5ca340fca2eefe18",
        "name": "command pos of axis[Idex_3] :",
        "func": "var newMsg = {};\n//\nvar i ;\nvar num;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\")\n{\n    i = global.get(\"Idex_3\");\n    num = msg.payload.pos[i];\n    var AxisTrig = global.get(\"TrigAxis3\");\n    if (AxisTrig==false)\n    {\n        num=0.0000; \n    } \n}\nelse\n{\n     i = 3;  //A\n     num = msg.payload.pos[i];\n}\n//\n\nnewMsg.payload = num.toFixed(4); \nreturn newMsg;\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2150,
        "y": 2980,
        "wires": [
            [
                "a16286409a3593f4"
            ]
        ]
    },
    {
        "id": "b7fba124eace5d74",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "5ca340fca2eefe18",
        "name": "command pos of axis[Idex_4]  ",
        "func": "var newMsg = {};\n//\nvar i ;\nvar num;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\")\n{\n    i = global.get(\"Idex_4\");\n    num = msg.payload.pos[i];\nvar AxisTrig = global.get(\"TrigAxis4\");\nif (AxisTrig==false)\n{\n    num=0.0000; \n} \n}\nelse\n{\n     i = 4;  //B\n     num = msg.payload.pos[i];\n}\n//\n\nnewMsg.payload = num.toFixed(4);\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2140,
        "y": 3040,
        "wires": [
            [
                "3c6af1dd3c5ae2d2"
            ]
        ]
    },
    {
        "id": "45185365de158579",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "5ca340fca2eefe18",
        "name": "command pos of axis[Idex_5]  ",
        "func": "var newMsg = {};\n//\nvar i;\nvar num;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\") {\n    i = global.get(\"Idex_5\");\n    num = msg.payload.pos[i];\n    var AxisTrig = global.get(\"TrigAxis5\");\n    if (AxisTrig==false)\n    {\n        num=0.0000; \n    }\n}\nelse {\n    i = 5;  //C\n    num = msg.payload.pos[i];\n}\n//\n\nnewMsg.payload = num.toFixed(4); \nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2140,
        "y": 3100,
        "wires": [
            [
                "cf391f3086964479"
            ]
        ]
    },
    {
        "id": "dee6666d35accebe",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "group": "87cbdbc793c5b9c7",
        "name": "TargetPos of axis Idex_3",
        "order": 30,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2510,
        "y": 3380,
        "wires": [
            []
        ]
    },
    {
        "id": "48d2ba7ddd31621c",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "group": "87cbdbc793c5b9c7",
        "name": "TargetPos of axis Idex_4",
        "order": 36,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2510,
        "y": 3420,
        "wires": [
            []
        ]
    },
    {
        "id": "718279f040890ed9",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "group": "87cbdbc793c5b9c7",
        "name": "TargetPosof axis Idex_5",
        "order": 42,
        "width": 3,
        "height": 1,
        "format": "<div> {{msg.payload}} </div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2510,
        "y": 3460,
        "wires": [
            []
        ]
    },
    {
        "id": "1dfa711726310f3b",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "name": "pos transfer of axis[Idex_3] :A",
        "func": "var newMsg = {};\n//\nvar i;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\") {\n    i = global.get(\"Idex_3\");\n    newMsg.value = msg.payload.targetPos[i];\n    var AxisTrig = global.get(\"TrigAxis3\");\n    if (AxisTrig == false) {\n        newMsg.value = 0.0000;\n    }\n}\nelse {\n    i = 3;  //A\n    newMsg.value = msg.payload.targetPos[i];\n\n}\n//\n\n    newMsg.payload = newMsg.value ;\n    newMsg.payload = newMsg.payload.toFixed(4); \nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2150,
        "y": 3380,
        "wires": [
            [
                "dee6666d35accebe"
            ]
        ]
    },
    {
        "id": "4b64083a4616b35b",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "name": "pos transfer of axis[Idex_4] :B",
        "func": "var newMsg = {};\n//\nvar i ;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\")\n{\n    i = global.get(\"Idex_4\");\n    newMsg.value = msg.payload.targetPos[i];\n    var AxisTrig = global.get(\"TrigAxis4\");\n    if (AxisTrig == false) {\n        newMsg.value = 0.0000;\n    } \n}\nelse\n{\n     i = 4;  //B\n    newMsg.value = msg.payload.targetPos[i];\n}\n//\n\n    newMsg.payload = newMsg.value  ;\n    newMsg.payload = newMsg.payload.toFixed(4); \nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2150,
        "y": 3420,
        "wires": [
            [
                "48d2ba7ddd31621c"
            ]
        ]
    },
    {
        "id": "ba48e55fb6283d87",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "name": "pos transfer of axis[Idex_5] : C",
        "func": "var newMsg = {};\n//\nvar i;\nvar coordname = global.get(\"gCoordinate\");\nif (coordname == \"acs\") {\n    i = global.get(\"Idex_5\");\n    newMsg.value = msg.payload.targetPos[i];\n    var AxisTrig = global.get(\"TrigAxis5\");\n    if (AxisTrig == false) {\n        newMsg.value = 0.0000;\n    } \n}\nelse {\n    i = 5;  //C\n    newMsg.value = msg.payload.targetPos[i];\n}\n//\n\n    newMsg.payload = newMsg.value ;\n    newMsg.payload = newMsg.payload.toFixed(4);           \nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2150,
        "y": 3460,
        "wires": [
            [
                "718279f040890ed9"
            ]
        ]
    },
    {
        "id": "08248e7c69a73650",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "dade02e14790fe42",
        "group": "87cbdbc793c5b9c7",
        "name": "End position",
        "order": 6,
        "width": 3,
        "height": 1,
        "format": "<div >End position</div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 1710,
        "y": 3300,
        "wires": [
            []
        ]
    },
    {
        "id": "2fb6897eadd55bdb",
        "type": "ui_template",
        "z": "e7734a74f031c3a8",
        "g": "5ca340fca2eefe18",
        "group": "87cbdbc793c5b9c7",
        "name": "Command ",
        "order": 5,
        "width": 3,
        "height": 1,
        "format": "<div>Command</div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 1670,
        "y": 2780,
        "wires": [
            []
        ]
    },
    {
        "id": "70d00a0162dac603",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "TrigAxis3 is true",
        "func": "var newMsg = {};\nglobal.set(\"TrigAxis3\",true);\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 3480,
        "y": 740,
        "wires": [
            []
        ]
    },
    {
        "id": "b21825776648a313",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "TrigAxis0 is true",
        "func": "var newMsg = {};\nglobal.set(\"TrigAxis0\",true);\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 3480,
        "y": 500,
        "wires": [
            []
        ]
    },
    {
        "id": "75a56c01fa3bfc8c",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "TrigAxis1 is true",
        "func": "var newMsg = {};\nglobal.set(\"TrigAxis1\",true);\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 3480,
        "y": 580,
        "wires": [
            []
        ]
    },
    {
        "id": "cec666af7bb97422",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "TrigAxis2 is true",
        "func": "var newMsg = {};\nglobal.set(\"TrigAxis2\",true);\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 3480,
        "y": 660,
        "wires": [
            []
        ]
    },
    {
        "id": "02081cd807b2a57c",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "TrigAxis4 is true",
        "func": "var newMsg = {};\nglobal.set(\"TrigAxis4\",true);\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 3480,
        "y": 820,
        "wires": [
            []
        ]
    },
    {
        "id": "73535ab31ea1894d",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "TrigAxis5 is true",
        "func": "var newMsg = {};\nglobal.set(\"TrigAxis5\",true);\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 3480,
        "y": 900,
        "wires": [
            []
        ]
    },
    {
        "id": "e9b98fee96ead489",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "g": "0db516f2915d9ec2",
        "name": "TrigAxis6 is true",
        "func": "var newMsg = {};\nglobal.set(\"TrigAxis6\",true);\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 3480,
        "y": 980,
        "wires": [
            []
        ]
    },
    {
        "id": "d63b6556ea7ed607",
        "type": "ui_dropdown",
        "z": "e7734a74f031c3a8",
        "name": "Select Act Kin",
        "label": "Select Kinematic",
        "tooltip": "",
        "place": "Select Kinematic",
        "group": "87cbdbc793c5b9c7",
        "order": 1,
        "width": 14,
        "height": 1,
        "passthru": true,
        "multiple": false,
        "options": [
            {
                "label": "",
                "value": "",
                "type": "str"
            }
        ],
        "payload": "",
        "topic": "topic",
        "topicType": "msg",
        "className": "",
        "x": 1120,
        "y": 220,
        "wires": [
            [
                "d56932d837feba2d"
            ]
        ]
    },
    {
        "id": "315ff6e152901f58",
        "type": "ctrlx-datalayer-subscribe",
        "z": "e7734a74f031c3a8",
        "subscription": "f7c02d1bfc87bc1e",
        "path": "motion/state/kin-list",
        "name": "",
        "inputs": 0,
        "x": 670,
        "y": 220,
        "wires": [
            [
                "342d669a92403fd8"
            ]
        ]
    },
    {
        "id": "342d669a92403fd8",
        "type": "change",
        "z": "e7734a74f031c3a8",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "options",
                "pt": "msg",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 900,
        "y": 220,
        "wires": [
            [
                "d63b6556ea7ed607"
            ]
        ]
    },
    {
        "id": "d56932d837feba2d",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "name": "set ",
        "func": "var newMsg = {};\nif (msg.payload != null) {\n    global.set(\"gKineName\", msg.payload);\n    global.set(\"gKineNameselected\", msg.payload);\n    \n    newMsg.payload = msg.payload;\n    return newMsg;\n}\nreturn null;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1310,
        "y": 220,
        "wires": [
            [
                "a756bb9d1b6d1c27"
            ]
        ]
    },
    {
        "id": "8bf864430e673e44",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "name": "Trigger PLC switch to system running mode",
        "func": "var newMsg = {};\nnewMsg.payload = { \"type\": \"bool8\", \"value\": true };\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2290,
        "y": 220,
        "wires": [
            [
                "a3af548d1908caf1"
            ]
        ]
    },
    {
        "id": "a3af548d1908caf1",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "device": "898040a71301c686",
        "method": "WRITE",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stInputData/bKinChanged",
        "payloadFormat": "value_type",
        "name": "",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 2770,
        "y": 220,
        "wires": [
            []
        ]
    },
    {
        "id": "a756bb9d1b6d1c27",
        "type": "function",
        "z": "e7734a74f031c3a8",
        "name": "read kinematics which selected",
        "func": "var newMsg={} ;\nvar kineName=global.get(\"gKineName\");\nif (kineName != null)\n{\n    newMsg.payload = { type: \"string\", \"value\": kineName };\n}\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1530,
        "y": 220,
        "wires": [
            [
                "08e01316c9ecf499"
            ]
        ]
    },
    {
        "id": "08e01316c9ecf499",
        "type": "ctrlx-datalayer-request",
        "z": "e7734a74f031c3a8",
        "device": "898040a71301c686",
        "method": "WRITE",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stInputData/KinName",
        "payloadFormat": "value_type",
        "name": "",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 1870,
        "y": 220,
        "wires": [
            [
                "8bf864430e673e44"
            ]
        ]
    },
    {
        "id": "c5f5d22f964edbb7",
        "type": "ui_button",
        "z": "e7734a74f031c3a8",
        "name": "F7",
        "group": "87cbdbc793c5b9c7",
        "order": 83,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 590,
        "y": 5480,
        "wires": [
            []
        ]
    },
    {
        "id": "8a550f126011d839",
        "type": "ui_slider",
        "z": "6c5403873270dadb",
        "g": "a2fb25ba4b4b8519",
        "name": "",
        "label": "Override",
        "tooltip": "",
        "group": "87cbdbc793c5b9c7",
        "order": 63,
        "width": 12,
        "height": 1,
        "passthru": false,
        "outs": "end",
        "topic": "#:(file)::topic",
        "topicType": "flow",
        "min": 0,
        "max": "100",
        "step": 1,
        "className": "",
        "x": 640,
        "y": 1980,
        "wires": [
            [
                "1482ccecf75b8385"
            ]
        ]
    },
    {
        "id": "9c2919366feb6452",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "g": "a2fb25ba4b4b8519",
        "device": "898040a71301c686",
        "method": "WRITE",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stInputData/lrNewOverride",
        "payloadFormat": "value_type",
        "name": "",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 1410,
        "y": 1980,
        "wires": [
            []
        ]
    },
    {
        "id": "ed3487bb04481a59",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "name": "",
        "group": "77fe629a960d15ce",
        "order": 8,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "Reset",
        "tooltip": "Reset",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "true",
        "payloadType": "bool",
        "topic": "topic",
        "topicType": "msg",
        "x": 1530,
        "y": 1840,
        "wires": [
            [
                "efa89bd3d50d6f25"
            ]
        ]
    },
    {
        "id": "de5a866f30883982",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "device": "898040a71301c686",
        "method": "WRITE",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stInputData/bReset",
        "payloadFormat": "value_type",
        "name": "",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 2630,
        "y": 1840,
        "wires": [
            []
        ]
    },
    {
        "id": "8b9946cba241e429",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "name": "Trigger PLC reset",
        "func": "var newMsg = {};\nnewMsg.payload = { \"type\": \"bool8\", \"value\": true };\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2290,
        "y": 1840,
        "wires": [
            [
                "de5a866f30883982"
            ]
        ]
    },
    {
        "id": "56e78bb320af2e9b",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "name": "",
        "group": "77fe629a960d15ce",
        "order": 5,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "Start",
        "tooltip": "",
        "color": "",
        "bgcolor": "{{background}}",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 2050,
        "y": 1660,
        "wires": [
            [
                "ee40ccd3f7f9ddd3"
            ]
        ]
    },
    {
        "id": "173144ebd72c33d8",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "name": "",
        "group": "77fe629a960d15ce",
        "order": 6,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "Stop",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 2050,
        "y": 1760,
        "wires": [
            [
                "0e251925121a9b09"
            ]
        ]
    },
    {
        "id": "43b72cddf8c3dcc3",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "device": "898040a71301c686",
        "method": "WRITE",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stInputData/bStop",
        "payloadFormat": "value_type",
        "name": "",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 2660,
        "y": 1760,
        "wires": [
            []
        ]
    },
    {
        "id": "0e251925121a9b09",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "name": "trigger NC stop",
        "func": "var newMsg = {};\nnewMsg.payload = { \"type\": \"bool8\", \"value\": true };\nreturn newMsg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2280,
        "y": 1760,
        "wires": [
            [
                "43b72cddf8c3dcc3"
            ]
        ]
    },
    {
        "id": "1482ccecf75b8385",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "a2fb25ba4b4b8519",
        "name": "Read the value of override from UI",
        "func": "var newMsg = {};\n    newMsg.payload = { type: \"double\", value: msg.payload / 100 };\nreturn newMsg;\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 940,
        "y": 1980,
        "wires": [
            [
                "9c2919366feb6452"
            ]
        ]
    },
    {
        "id": "fbc665f343ea3ef9",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "d": true,
        "g": "c68da40e82c47287",
        "name": "",
        "group": "77fe629a960d15ce",
        "order": 22,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "SIG",
        "tooltip": "Power off",
        "color": "",
        "bgcolor": "red",
        "className": "",
        "icon": "",
        "payload": "true",
        "payloadType": "bool",
        "topic": "topic",
        "topicType": "msg",
        "x": 650,
        "y": 2200,
        "wires": [
            [
                "f835f7a90b70374e"
            ]
        ]
    },
    {
        "id": "74c8f016752894fe",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "d": true,
        "g": "c68da40e82c47287",
        "device": "898040a71301c686",
        "method": "WRITE",
        "path": "motion/state/functions/somo/signals/10",
        "payloadFormat": "value_type",
        "name": "WRITE:trigger signal command",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 1230,
        "y": 2200,
        "wires": [
            []
        ]
    },
    {
        "id": "f835f7a90b70374e",
        "type": "function",
        "z": "6c5403873270dadb",
        "d": true,
        "g": "c68da40e82c47287",
        "name": "trigger signal",
        "func": "var newMsg = {};\nnewMsg.payload = { \"type\": \"bool8\", \"value\": true };\nreturn newMsg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 890,
        "y": 2200,
        "wires": [
            [
                "74c8f016752894fe"
            ]
        ]
    },
    {
        "id": "e55e4bf70f898f5c",
        "type": "comment",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "name": "reset plc/instance",
        "info": " - ",
        "x": 400,
        "y": 1840,
        "wires": []
    },
    {
        "id": "44ef9597bcb6bcc0",
        "type": "comment",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "name": "stop instance then kine",
        "info": " - ",
        "x": 420,
        "y": 1760,
        "wires": []
    },
    {
        "id": "6572e030af19993e",
        "type": "comment",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "name": "Start NC program",
        "info": "",
        "x": 400,
        "y": 1660,
        "wires": []
    },
    {
        "id": "0ce012dda44a09e9",
        "type": "comment",
        "z": "6c5403873270dadb",
        "g": "c68da40e82c47287",
        "name": "test signal command",
        "info": "",
        "x": 410,
        "y": 2200,
        "wires": []
    },
    {
        "id": "3fc3837222d1c375",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "device": "898040a71301c686",
        "method": "WRITE",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stInputData/bStart",
        "payloadFormat": "value_type",
        "name": "",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 2620,
        "y": 1660,
        "wires": [
            []
        ]
    },
    {
        "id": "ee40ccd3f7f9ddd3",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "name": "trigger NC start",
        "func": "var newMsg = {};\nnewMsg.payload = { \"type\": \"bool8\", \"value\": true };\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2280,
        "y": 1660,
        "wires": [
            [
                "3fc3837222d1c375"
            ]
        ]
    },
    {
        "id": "40020d9ea5fdad9a",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "name": "M1",
        "group": "77fe629a960d15ce",
        "order": 9,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 350,
        "y": 2360,
        "wires": [
            []
        ]
    },
    {
        "id": "ef621d31bbb3e5d4",
        "type": "comment",
        "z": "6c5403873270dadb",
        "g": "a2fb25ba4b4b8519",
        "name": "set override",
        "info": " - ",
        "x": 370,
        "y": 1980,
        "wires": []
    },
    {
        "id": "6eea66c63989e2a8",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "name": "M3",
        "group": "77fe629a960d15ce",
        "order": 11,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 350,
        "y": 2480,
        "wires": [
            []
        ]
    },
    {
        "id": "bec070de3a86f1b0",
        "type": "ctrlx-datalayer-subscribe",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "subscription": "f7c02d1bfc87bc1e",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/stUiState",
        "name": "",
        "inputs": 0,
        "x": 610,
        "y": 1700,
        "wires": [
            []
        ]
    },
    {
        "id": "0b59fa5674693850",
        "type": "switch",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "DISABLE",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "READY",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "RUNNING",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "PAUSE",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "ERROR",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 5,
        "x": 890,
        "y": 1700,
        "wires": [
            [
                "0d698e6f1a4bd72b",
                "1b20b10fba93f146",
                "9bc2174620441c09"
            ],
            [
                "1b20b10fba93f146",
                "9bc2174620441c09"
            ],
            [
                "9bc2174620441c09",
                "09c8f309ad4f4c39"
            ],
            [
                "f3b153eb1ed5f211"
            ],
            [
                "0d698e6f1a4bd72b",
                "1b20b10fba93f146",
                "9bc2174620441c09"
            ]
        ]
    },
    {
        "id": "0d698e6f1a4bd72b",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "name": "lake blue light hold",
        "func": "var newMsg = {};\nnewMsg.background = \"lake blue\";\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1710,
        "y": 1700,
        "wires": [
            [
                "56e78bb320af2e9b"
            ]
        ]
    },
    {
        "id": "09c8f309ad4f4c39",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "name": "green light hold",
        "func": "var newMsg = {};\nnewMsg.background = \"green\";\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1700,
        "y": 1660,
        "wires": [
            [
                "56e78bb320af2e9b"
            ]
        ]
    },
    {
        "id": "f5d69bf562ad7d17",
        "type": "inject",
        "z": "6c5403873270dadb",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "2",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 370,
        "y": 1460,
        "wires": [
            [
                "aca5a926e48113cc"
            ]
        ]
    },
    {
        "id": "f3fa7109052763f9",
        "type": "change",
        "z": "6c5403873270dadb",
        "g": "314676e73a5c515f",
        "name": " green light",
        "rules": [
            {
                "t": "set",
                "p": "background",
                "pt": "msg",
                "to": "green",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 2190,
        "y": 1480,
        "wires": [
            [
                "56e78bb320af2e9b"
            ]
        ]
    },
    {
        "id": "85b1cd8ba73f202f",
        "type": "trigger",
        "z": "6c5403873270dadb",
        "g": "314676e73a5c515f",
        "name": "1 secods trigger",
        "op1": "",
        "op2": "",
        "op1type": "nul",
        "op2type": "pay",
        "duration": "1",
        "extend": false,
        "overrideDelay": false,
        "units": "s",
        "reset": "",
        "bytopic": "all",
        "topic": "topic",
        "outputs": 1,
        "x": 2000,
        "y": 1520,
        "wires": [
            [
                "3263fca6f6cdd85d"
            ]
        ]
    },
    {
        "id": "3263fca6f6cdd85d",
        "type": "change",
        "z": "6c5403873270dadb",
        "g": "314676e73a5c515f",
        "name": "blue light",
        "rules": [
            {
                "t": "set",
                "p": "background",
                "pt": "msg",
                "to": "lake blue",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 2200,
        "y": 1520,
        "wires": [
            [
                "56e78bb320af2e9b"
            ]
        ]
    },
    {
        "id": "aca5a926e48113cc",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/stUiState",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 660,
        "y": 1460,
        "wires": [
            [
                "80081b8dd5b09d60",
                "c684b196e41af8b9",
                "a67b8680b8d24197",
                "0b59fa5674693850"
            ]
        ]
    },
    {
        "id": "80081b8dd5b09d60",
        "type": "switch",
        "z": "6c5403873270dadb",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "DISABLE",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "READY",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "RUNNING",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "PAUSE",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "ERROR",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 5,
        "x": 950,
        "y": 1460,
        "wires": [
            [],
            [
                "70639c6917693368"
            ],
            [
                "eb28746fd9a01fbb"
            ],
            [
                "21165deef32002c3"
            ],
            []
        ]
    },
    {
        "id": "1b3479ddaa365205",
        "type": "comment",
        "z": "6c5403873270dadb",
        "name": "start button blink",
        "info": "",
        "x": 360,
        "y": 1420,
        "wires": []
    },
    {
        "id": "468cf0bf8c4f65ad",
        "type": "comment",
        "z": "6c5403873270dadb",
        "g": "314676e73a5c515f",
        "name": "for start",
        "info": "",
        "x": 2410,
        "y": 1480,
        "wires": []
    },
    {
        "id": "c334bc335bbc9dd3",
        "type": "trigger",
        "z": "6c5403873270dadb",
        "g": "deb087fe2bde0111",
        "name": "1 secods trigger",
        "op1": "",
        "op2": "",
        "op1type": "nul",
        "op2type": "pay",
        "duration": "1",
        "extend": false,
        "overrideDelay": false,
        "units": "s",
        "reset": "",
        "bytopic": "all",
        "topic": "topic",
        "outputs": 1,
        "x": 2360,
        "y": 2020,
        "wires": [
            [
                "cf103355713b4949"
            ]
        ]
    },
    {
        "id": "0d3971242b22f895",
        "type": "change",
        "z": "6c5403873270dadb",
        "g": "deb087fe2bde0111",
        "name": " green light",
        "rules": [
            {
                "t": "set",
                "p": "background",
                "pt": "msg",
                "to": "green",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 2550,
        "y": 1980,
        "wires": [
            []
        ]
    },
    {
        "id": "cf103355713b4949",
        "type": "change",
        "z": "6c5403873270dadb",
        "g": "deb087fe2bde0111",
        "name": "blue light",
        "rules": [
            {
                "t": "set",
                "p": "background",
                "pt": "msg",
                "to": "lake blue",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 2560,
        "y": 2020,
        "wires": [
            []
        ]
    },
    {
        "id": "fd10ccfbaf1d2e35",
        "type": "comment",
        "z": "6c5403873270dadb",
        "g": "deb087fe2bde0111",
        "name": "for stop",
        "info": "",
        "x": 2770,
        "y": 1980,
        "wires": []
    },
    {
        "id": "1b20b10fba93f146",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "name": "lake blue light hold",
        "func": "var newMsg = {};\nnewMsg.background = \"lake blue\";\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1710,
        "y": 1760,
        "wires": [
            [
                "173144ebd72c33d8"
            ]
        ]
    },
    {
        "id": "396c9b9466aa2c0e",
        "type": "ctrlx-datalayer-subscribe",
        "z": "6c5403873270dadb",
        "subscription": "f7c02d1bfc87bc1e",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/sysState",
        "name": "",
        "inputs": 0,
        "x": 430,
        "y": 580,
        "wires": [
            [
                "2278aa10890f6c44"
            ]
        ]
    },
    {
        "id": "24159356f9e17757",
        "type": "switch",
        "z": "6c5403873270dadb",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "true"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 1690,
        "y": 1480,
        "wires": [
            [
                "f3fa7109052763f9",
                "85b1cd8ba73f202f"
            ]
        ]
    },
    {
        "id": "f43b95fb56baecba",
        "type": "comment",
        "z": "6c5403873270dadb",
        "g": "7eefdf97e0efef0b",
        "name": " error lifht",
        "info": "",
        "x": 1160,
        "y": 640,
        "wires": []
    },
    {
        "id": "f893820fd1a066a7",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "lastErrText",
        "func": "var newMsg = {};\nnewMsg.payload = msg.payload.lastErrText.split('->')[0];\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2630,
        "y": 280,
        "wires": [
            [
                "82332e7371476676"
            ]
        ]
    },
    {
        "id": "45b4263940e6b9f6",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "lastErrTrace",
        "func": "var newMsg = {};\nnewMsg.payload = msg.payload.lastErrTrace[0];\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2630,
        "y": 340,
        "wires": [
            [
                "37f1d1639ef24637"
            ]
        ]
    },
    {
        "id": "1190a490a9969f2b",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "Reshape data type",
        "func": "//var newmsg=msg.payload.lastMainDiag;\nfunction numHex(s)\n { \n    var a = s.toString(16); \n    if ((a.length % 2) > 0) \n    { a = \"0\" + a; } \n    return a; \n} \n    var a1 = msg.payload.lastMainDiag;\n    var a2 = msg.payload.lastDetailDiag;\n     msg.payload.lastMainDiag = numHex(a1); \n     msg.payload.lastDetailDiag = numHex(a2);\n\nreturn msg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2270,
        "y": 520,
        "wires": [
            [
                "30dfdd33fc7524e0",
                "8c8597e0b6cb4bb2"
            ]
        ]
    },
    {
        "id": "c11595022e6bb3ce",
        "type": "comment",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "Diag informations",
        "info": "",
        "x": 1540,
        "y": 360,
        "wires": []
    },
    {
        "id": "37f1d1639ef24637",
        "type": "ui_text",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "group": "87cbdbc793c5b9c7",
        "order": 74,
        "width": 14,
        "height": 1,
        "name": "",
        "label": " Source:",
        "format": "{{msg.payload}}",
        "layout": "row-left",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": "",
        "color": "#000000",
        "x": 2880,
        "y": 660,
        "wires": []
    },
    {
        "id": "82332e7371476676",
        "type": "ui_text",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "group": "87cbdbc793c5b9c7",
        "order": 73,
        "width": 14,
        "height": 1,
        "name": "",
        "label": "Error:",
        "format": "{{msg.payload}}",
        "layout": "row-left",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": "",
        "color": "#000000",
        "x": 2870,
        "y": 600,
        "wires": []
    },
    {
        "id": "acf4de5c072e7fd3",
        "type": "ui_text",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "group": "87cbdbc793c5b9c7",
        "order": 76,
        "width": 14,
        "height": 1,
        "name": "",
        "label": "Detail diagnosis:   ",
        "format": "{{msg.payload}}",
        "layout": "row-left",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": "",
        "color": "#000000",
        "x": 3300,
        "y": 500,
        "wires": []
    },
    {
        "id": "0c13851fab7f3727",
        "type": "ui_text",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "group": "87cbdbc793c5b9c7",
        "order": 75,
        "width": 14,
        "height": 1,
        "name": "",
        "label": "Main diagnosis:   ",
        "format": "{{msg.payload}}",
        "layout": "row-left",
        "className": "",
        "style": false,
        "font": "",
        "fontSize": "",
        "color": "#000000",
        "x": 3300,
        "y": 380,
        "wires": []
    },
    {
        "id": "30dfdd33fc7524e0",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "lastMainDiag",
        "func": "var newMsg = {};\nnewMsg.number = msg.payload.lastMainDiag;\n//var myMainDiagNumber = \"091F2006\"\nvar myMainDiagNumber = msg.payload.lastMainDiag;\nnewMsg.path = \"diagnosis/get/text/main?data={ \\\"type\\\": \\\"object\\\", \\\"value\\\": { \\\"mainDiagnosisNumber\\\": \\\"\" + myMainDiagNumber + \"\\\" } }\"\nreturn newMsg;\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2570,
        "y": 420,
        "wires": [
            [
                "24e389ee88bbd972"
            ]
        ]
    },
    {
        "id": "8c8597e0b6cb4bb2",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "lastDetailDiag",
        "func": "var newMsg = {};\nnewMsg.number = msg.payload.lastDetailDiag;\n\n//var myMainDiagNumber = \"091F2006\";\n//var myDetailDiagNumber = \"0C560107\";\n\nvar myMainDiagNumber = msg.payload.lastMainDiag;\nvar myDetailDiagNumber = msg.payload.lastDetailDiag;\n\nnewMsg.path = \"diagnosis/get/text/detailed?data={ \\\"type\\\": \\\"object\\\", \\\"value\\\": { \\\"detailedDiagnosisNumber\\\": \\\"\" + myDetailDiagNumber + \"\\\", \\\"relatedMainDiagnosisNumber\\\": \\\"\" + myMainDiagNumber + \"\\\" } }\"\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2580,
        "y": 480,
        "wires": [
            [
                "fc0eb288e6123572"
            ]
        ]
    },
    {
        "id": "0d092ef8b6bdcad0",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "device": "898040a71301c686",
        "method": "msg",
        "path": "",
        "payloadFormat": "value",
        "name": "Diag read",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 2020,
        "y": 520,
        "wires": [
            [
                "1190a490a9969f2b",
                "45b4263940e6b9f6",
                "f893820fd1a066a7"
            ]
        ]
    },
    {
        "id": "e1a8fb6946a5e0fc",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "instances error",
        "func": "//Kinematics_1 / state / values / ipo / pos\nvar kineName = global.get(\"gKineNameselected\");\nvar str_start = \"script/instances/\" + kineName;\nvar str_end = \"/diag\";\nmsg.method = 'READ';\nmsg.path = str_start +  str_end ;\n//global.set(\"InstPath\", msg.path);\nreturn msg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1780,
        "y": 520,
        "wires": [
            [
                "0d092ef8b6bdcad0"
            ]
        ]
    },
    {
        "id": "c063056f7877a72c",
        "type": "comment",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "Diag group",
        "info": "",
        "x": 1360,
        "y": 360,
        "wires": []
    },
    {
        "id": "4ffc7cd98d865793",
        "type": "comment",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "Read from MOTION/Script",
        "info": "",
        "x": 1750,
        "y": 360,
        "wires": []
    },
    {
        "id": "a8deccf0c1cd6550",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "clearinfo",
        "func": "var newMsg = {};\nnewMsg.payload ='';\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1840,
        "y": 420,
        "wires": [
            [
                "0c13851fab7f3727",
                "acf4de5c072e7fd3",
                "82332e7371476676",
                "37f1d1639ef24637"
            ]
        ]
    },
    {
        "id": "2de63f505445dcf8",
        "type": "ui_template",
        "z": "6c5403873270dadb",
        "g": "7eefdf97e0efef0b",
        "group": "77fe629a960d15ce",
        "name": "Error source ",
        "order": 1,
        "width": 2,
        "height": 2,
        "format": "<div\n    ng-style=\"{'background-color': msg.payload === 'ERROR' ? 'red' : 'green', 'border-radius': '75%', 'width': '75px', 'height': '75px', 'display': 'flex', 'justify-content': 'center', 'align-items': 'center'}\">\n    <span ng-show=\"payload === 'error'\">ERROR</span>\n    <span ng-hide=\"payload === 'error'\">{{msg.state}}</span>\n</div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 1170,
        "y": 580,
        "wires": [
            []
        ]
    },
    {
        "id": "c684b196e41af8b9",
        "type": "function",
        "z": "6c5403873270dadb",
        "name": "set 'gUiState'",
        "func": "\nglobal.set(\"gUiState\", msg.payload);\n\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 930,
        "y": 1560,
        "wires": [
            []
        ]
    },
    {
        "id": "a67b8680b8d24197",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "7eefdf97e0efef0b",
        "name": "function 1",
        "func": "\nvar newMsg = {};\nvar Mstate = global.get(\"gMotionState\");\nvar Sstate = global.get(\"gsystemState\");\nvar Ustate = global.get(\"gUiState\");\nif (Mstate == 'ERROR' || Sstate =='ERROR'){\n    newMsg.payload = 'ERROR';\n    newMsg.state = 'ERROR';\n}\nelse {  \n    newMsg.payload = msg.payload;\n    newMsg.state = Ustate;\n}\n\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 960,
        "y": 600,
        "wires": [
            [
                "2de63f505445dcf8",
                "259aaea926f0d104"
            ]
        ]
    },
    {
        "id": "259aaea926f0d104",
        "type": "switch",
        "z": "6c5403873270dadb",
        "g": "7eefdf97e0efef0b",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "neq",
                "v": "ERROR",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "ERROR",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 1170,
        "y": 500,
        "wires": [
            [
                "a8deccf0c1cd6550",
                "8e4234849d1e2123"
            ],
            [
                "89931993f27a365a"
            ]
        ]
    },
    {
        "id": "54da50ff61989cd8",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "",
        "group": "77fe629a960d15ce",
        "order": 2,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "KIN ON",
        "tooltip": "Power on",
        "color": "",
        "bgcolor": "{{background}}",
        "className": "",
        "icon": "",
        "payload": "true",
        "payloadType": "bool",
        "topic": "topic",
        "topicType": "msg",
        "x": 1640,
        "y": 920,
        "wires": [
            [
                "78fb3ccf7e5b1b6f"
            ]
        ]
    },
    {
        "id": "78fb3ccf7e5b1b6f",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "Trigger power on",
        "func": "var newMsg = {};\nnewMsg.payload = { \"type\": \"bool8\", \"value\": true };\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1830,
        "y": 920,
        "wires": [
            [
                "9c67a78431a94e50"
            ]
        ]
    },
    {
        "id": "b605850cd2ee6e58",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "",
        "group": "77fe629a960d15ce",
        "order": 3,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "KIN OFF",
        "tooltip": "Power off",
        "color": "",
        "bgcolor": "{{background}}",
        "className": "",
        "icon": "",
        "payload": "true",
        "payloadType": "bool",
        "topic": "topic",
        "topicType": "msg",
        "x": 1640,
        "y": 1040,
        "wires": [
            [
                "a2f2dc189cb546bd"
            ]
        ]
    },
    {
        "id": "a2f2dc189cb546bd",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "Trigger power off",
        "func": "var newMsg = {};\nnewMsg.payload = { \"type\": \"bool8\", \"value\": true };\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1830,
        "y": 1040,
        "wires": [
            [
                "5626d889ee73e78f"
            ]
        ]
    },
    {
        "id": "9c67a78431a94e50",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "device": "898040a71301c686",
        "method": "WRITE",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stInputData/bPowerOn",
        "payloadFormat": "value_type",
        "name": "",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 2580,
        "y": 920,
        "wires": [
            []
        ]
    },
    {
        "id": "96fd771a255d2b86",
        "type": "ctrlx-datalayer-subscribe",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "subscription": "f7c02d1bfc87bc1e",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/stUiMotionState",
        "name": "",
        "inputs": 0,
        "x": 455,
        "y": 1000,
        "wires": [
            [
                "20c9c69fbb7a04c2",
                "06640683ab1dc24d"
            ]
        ],
        "l": false
    },
    {
        "id": "20c9c69fbb7a04c2",
        "type": "switch",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "READY",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "MOVING",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "DISABLED",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "ERROR",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 4,
        "x": 830,
        "y": 960,
        "wires": [
            [],
            [],
            [],
            []
        ]
    },
    {
        "id": "b86c8cbac0ea0541",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "lake blue light hold",
        "func": "var newMsg = {};\nnewMsg.background = \"lake blue\";\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1430,
        "y": 960,
        "wires": [
            [
                "54da50ff61989cd8"
            ]
        ]
    },
    {
        "id": "737aa2898a900e4c",
        "type": "comment",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "Power on/off  /pause",
        "info": "",
        "x": 430,
        "y": 940,
        "wires": []
    },
    {
        "id": "4153812df8513cdf",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "",
        "group": "77fe629a960d15ce",
        "order": 7,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "Pause",
        "tooltip": "",
        "color": "",
        "bgcolor": "{{background}}",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 1630,
        "y": 1180,
        "wires": [
            [
                "a5e9a47621150d15"
            ]
        ]
    },
    {
        "id": "a5e9a47621150d15",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "trigger NC pause",
        "func": "var newMsg = {};\nnewMsg.payload = { \"type\": \"bool8\", \"value\": true };\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1830,
        "y": 1180,
        "wires": [
            [
                "e19ab74dfe33a46e"
            ]
        ]
    },
    {
        "id": "e19ab74dfe33a46e",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "device": "898040a71301c686",
        "method": "WRITE",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stInputData/bPause",
        "payloadFormat": "value_type",
        "name": "",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 2570,
        "y": 1180,
        "wires": [
            []
        ]
    },
    {
        "id": "5626d889ee73e78f",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "device": "898040a71301c686",
        "method": "WRITE",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stInputData/bPowerOff",
        "payloadFormat": "value_type",
        "name": "",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 2580,
        "y": 1040,
        "wires": [
            []
        ]
    },
    {
        "id": "45f03ffe99721058",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "green light hold",
        "func": "var newMsg = {};\nnewMsg.background = \"green\";\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1440,
        "y": 920,
        "wires": [
            [
                "54da50ff61989cd8"
            ]
        ]
    },
    {
        "id": "f3b153eb1ed5f211",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "green light hold",
        "func": "var newMsg = {};\nnewMsg.background = \"green\";\nreturn newMsg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1260,
        "y": 1180,
        "wires": [
            [
                "4153812df8513cdf"
            ]
        ]
    },
    {
        "id": "9bc2174620441c09",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "lake blue light hold",
        "func": "var newMsg = {};\nnewMsg.background = \"lake blue\";\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1270,
        "y": 1240,
        "wires": [
            [
                "4153812df8513cdf"
            ]
        ]
    },
    {
        "id": "06640683ab1dc24d",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "set 'gMotionState'",
        "func": "global.set(\"gMotionState\", msg.payload);\nreturn msg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1010,
        "y": 1100,
        "wires": [
            []
        ]
    },
    {
        "id": "4890d2e3db14a66e",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "name": "",
        "group": "77fe629a960d15ce",
        "order": 4,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "Prog load",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 220,
        "y": 2120,
        "wires": [
            [
                "39ecfd47537b4215",
                "8558fe01ea34b2f4"
            ]
        ]
    },
    {
        "id": "39ecfd47537b4215",
        "type": "function",
        "z": "6c5403873270dadb",
        "name": "trigger NCprogram load",
        "func": "var newMsg = {};\nnewMsg.payload = { \"type\": \"bool8\", \"value\": true };\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 650,
        "y": 2120,
        "wires": [
            [
                "0ebbec763731ba54"
            ]
        ]
    },
    {
        "id": "0ebbec763731ba54",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "device": "898040a71301c686",
        "method": "WRITE",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stInputData/stSelectProg",
        "payloadFormat": "value_type",
        "name": "",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 1060,
        "y": 2120,
        "wires": [
            []
        ]
    },
    {
        "id": "d9c4fadae6059082",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "name": "M4",
        "group": "77fe629a960d15ce",
        "order": 12,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 350,
        "y": 2560,
        "wires": [
            []
        ]
    },
    {
        "id": "a5330cd67393668d",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "name": "M5",
        "group": "77fe629a960d15ce",
        "order": 13,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 350,
        "y": 2600,
        "wires": [
            []
        ]
    },
    {
        "id": "89931993f27a365a",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "check error sourse",
        "func": "//Kinematics_1 / state / values / ipo / pos\n//var kineName = msg.payload.value;\nvar tKineState = global.get('KineState');\nvar tInstState = global.get('InstState');\n//var tSysstate = global.get('gsystemState');\nif (tInstState == 'ERROR'){\n    msg.payload='InstanceError';\n}\nelse if (tKineState == 'ERRORSTOP') {\n    msg.payload='KinematicsError';\n}\nelse \n{\n    msg.payload='OtherError';\n}\n\nreturn msg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1410,
        "y": 580,
        "wires": [
            [
                "03fba64bea67eeae"
            ]
        ]
    },
    {
        "id": "03fba64bea67eeae",
        "type": "switch",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "InstanceError",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "KinematicsError",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "OtherError",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 3,
        "x": 1590,
        "y": 580,
        "wires": [
            [
                "e1a8fb6946a5e0fc",
                "50a4bae93e221a2f"
            ],
            [
                "59334614db543e44",
                "4e2536873071fe7b"
            ],
            [
                "198c3392b7aa75b5",
                "0c426d25ad443578",
                "189757748f718794",
                "d5c516c211e34c92",
                "8fa42305139e532c"
            ]
        ]
    },
    {
        "id": "59334614db543e44",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "kinematics error",
        "func": "//Kinematics_1 / state / values / ipo / pos\n//var kineName = msg.payload.value;\nvar kineName = global.get(\"gKineNameselected\");\nvar str_start = \"motion/kin/\" + kineName;\nvar str_end = \"/state/diag-info\"; \nmsg.method = 'READ';\nmsg.path = str_start +  str_end ;\n//global.set(\"InstPath\", msg.path);\nreturn msg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1780,
        "y": 620,
        "wires": [
            [
                "4cd6b13dfd29af59"
            ]
        ]
    },
    {
        "id": "4cd6b13dfd29af59",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "device": "898040a71301c686",
        "method": "msg",
        "path": "",
        "payloadFormat": "value",
        "name": "Diag read",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 2020,
        "y": 620,
        "wires": [
            [
                "b20cba95b105ebee",
                "6808971ce754f7cf",
                "9ae1414dfb5577e5"
            ]
        ]
    },
    {
        "id": "b20cba95b105ebee",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "Reshape data type",
        "func": "//var newmsg=msg.payload.lastMainDiag;\nfunction numHex(s)\n { \n    var a = s.toString(16); \n    if ((a.length % 2) > 0) \n    { a = \"0\" + a; } \n    return a; \n} \n    var a1 = msg.payload.mainDiagCode;\n    var a2 = msg.payload.detailedDiagCode;\n     msg.payload.lastMainDiag = numHex(a1); \n     msg.payload.lastDetailDiag = numHex(a2);\n\nreturn msg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2270,
        "y": 620,
        "wires": [
            [
                "8c8597e0b6cb4bb2",
                "30dfdd33fc7524e0"
            ]
        ]
    },
    {
        "id": "9ae1414dfb5577e5",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "source",
        "func": "var newMsg = {};\nnewMsg.payload = msg.payload.source;\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2630,
        "y": 720,
        "wires": [
            [
                "37f1d1639ef24637"
            ]
        ]
    },
    {
        "id": "6808971ce754f7cf",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "addInfo",
        "func": "var newMsg = {};\nnewMsg.payload = msg.payload.addInfo;\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2640,
        "y": 660,
        "wires": [
            [
                "82332e7371476676"
            ]
        ]
    },
    {
        "id": "198c3392b7aa75b5",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/sysDiag/MainDiag",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 1920,
        "y": 700,
        "wires": [
            [
                "a3b09936fe7dcef2"
            ]
        ]
    },
    {
        "id": "0c426d25ad443578",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/sysDiag/DetailDiag",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 1910,
        "y": 740,
        "wires": [
            [
                "4983e94c908242eb"
            ]
        ]
    },
    {
        "id": "189757748f718794",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/sysDiag/DiagInfor",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 1910,
        "y": 780,
        "wires": [
            [
                "82332e7371476676"
            ]
        ]
    },
    {
        "id": "d5c516c211e34c92",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "plc/app/Application/sym/GVL_UI_PLC/stOutputData/sysDiag/ErrorSource",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 1920,
        "y": 820,
        "wires": [
            [
                "37f1d1639ef24637"
            ]
        ]
    },
    {
        "id": "4686176d6e0372b3",
        "type": "ctrlx-datalayer-subscribe",
        "z": "6c5403873270dadb",
        "g": "a4f11a328a56021f",
        "subscription": "f7c02d1bfc87bc1e",
        "path": "motion/state/functions/somo/signals/00",
        "name": "",
        "inputs": 0,
        "x": 1330,
        "y": 1320,
        "wires": [
            [
                "e38754fa9181c6cc"
            ]
        ]
    },
    {
        "id": "e38754fa9181c6cc",
        "type": "switch",
        "z": "6c5403873270dadb",
        "g": "a4f11a328a56021f",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "true"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 1630,
        "y": 1320,
        "wires": [
            []
        ]
    },
    {
        "id": "12662e32abd1779f",
        "type": "comment",
        "z": "6c5403873270dadb",
        "g": "a4f11a328a56021f",
        "name": "M0",
        "info": "",
        "x": 2090,
        "y": 1320,
        "wires": []
    },
    {
        "id": "a3b09936fe7dcef2",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "data type conversion",
        "func": "var decimalString = msg.payload;  \nvar decimalValue = parseInt(decimalString);  \nvar hexValue = decimalValue.toString(16);  \nmsg.payload = hexValue;  \nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2300,
        "y": 700,
        "wires": [
            [
                "0c13851fab7f3727"
            ]
        ]
    },
    {
        "id": "4983e94c908242eb",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "data type conversion",
        "func": "var decimalString = msg.payload;  \nvar decimalValue = parseInt(decimalString);  \nvar hexValue = decimalValue.toString(16);  \nmsg.payload = hexValue;  \nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2300,
        "y": 740,
        "wires": [
            [
                "82332e7371476676",
                "acf4de5c072e7fd3"
            ]
        ]
    },
    {
        "id": "50a4bae93e221a2f",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "G code instance error",
        "func": "var newMsg = {};\nvar state = \"ERROR\";\nnewMsg.payload = 'G code error';\nnewMsg.state = state;\nreturn newMsg;\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 2000,
        "y": 180,
        "wires": [
            [
                "4da929250d86c25f",
                "034c9697aed4789d"
            ]
        ]
    },
    {
        "id": "4e2536873071fe7b",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "motion error",
        "func": "var newMsg = {};\nvar state = \"ERROR\";\nnewMsg.payload = 'Motion error';\nnewMsg.state = state;\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1970,
        "y": 220,
        "wires": [
            [
                "4da929250d86c25f"
            ]
        ]
    },
    {
        "id": "8fa42305139e532c",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "PLC error",
        "func": "var newMsg = {};\nvar state = \"ERROR\";\nnewMsg.payload = 'PLC error';\nnewMsg.state = state;\nreturn newMsg;\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1960,
        "y": 260,
        "wires": [
            [
                "4da929250d86c25f"
            ]
        ]
    },
    {
        "id": "4da929250d86c25f",
        "type": "ui_template",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "group": "87cbdbc793c5b9c7",
        "name": "UI state",
        "order": 72,
        "width": 4,
        "height": 1,
        "format": "<div\n    ng-style=\"{'background-color': msg.state === 'ERROR' ? 'red' : 'blue'}\">\n    <span ng-hide=\"payload === 'error'\">{{msg.payload}}</span>\n</div>\n",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 2700,
        "y": 200,
        "wires": [
            []
        ]
    },
    {
        "id": "8e4234849d1e2123",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "No error",
        "func": "var newMsg = {};\nvar state = \"NoError\";\nnewMsg.payload = '';\nnewMsg.state = state;\nreturn newMsg;\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1960,
        "y": 320,
        "wires": [
            [
                "4da929250d86c25f"
            ]
        ]
    },
    {
        "id": "681a3031be11314a",
        "type": "ui_template",
        "z": "6c5403873270dadb",
        "group": "aa7eeba04b5329b2",
        "name": "",
        "order": 14,
        "width": 7,
        "height": 1,
        "format": "<div ng-bind-html=\"msg.payload\"></div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 360,
        "y": 380,
        "wires": [
            []
        ]
    },
    {
        "id": "eb28746fd9a01fbb",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "motion/state/functions/somo/signals/00",
        "payloadFormat": "value",
        "name": "",
        "pendingWarnLevel": 50,
        "pendingErrorLevel": 100,
        "x": 1300,
        "y": 1480,
        "wires": [
            [
                "24159356f9e17757"
            ]
        ]
    },
    {
        "id": "1617382cddabaabf",
        "type": "inject",
        "z": "6c5403873270dadb",
        "name": "Timestamp",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "1",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 430,
        "y": 2040,
        "wires": [
            []
        ]
    },
    {
        "id": "2be11594658b1ac1",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "name": "M6",
        "group": "77fe629a960d15ce",
        "order": 14,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 350,
        "y": 2680,
        "wires": [
            []
        ]
    },
    {
        "id": "436bb59d5082b248",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "name": "M7",
        "group": "77fe629a960d15ce",
        "order": 15,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 350,
        "y": 2740,
        "wires": [
            []
        ]
    },
    {
        "id": "df6ba928f9a385e2",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "name": "M8",
        "group": "77fe629a960d15ce",
        "order": 17,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 350,
        "y": 2800,
        "wires": [
            []
        ]
    },
    {
        "id": "1086632438cac1c0",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "name": "M2",
        "group": "77fe629a960d15ce",
        "order": 10,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 350,
        "y": 2420,
        "wires": [
            []
        ]
    },
    {
        "id": "2278aa10890f6c44",
        "type": "function",
        "z": "6c5403873270dadb",
        "name": "set 'gsystemState'",
        "func": "\nglobal.set(\"gsystemState\", msg.payload);\n\n\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 770,
        "y": 580,
        "wires": [
            []
        ]
    },
    {
        "id": "2e4c5090cfc301a1",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "name": "M10",
        "group": "77fe629a960d15ce",
        "order": 21,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 350,
        "y": 2940,
        "wires": [
            []
        ]
    },
    {
        "id": "3f70dababe701992",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "name": "M9",
        "group": "77fe629a960d15ce",
        "order": 19,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 350,
        "y": 2880,
        "wires": [
            []
        ]
    },
    {
        "id": "2b9af55215bb0950",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "name": "M11",
        "group": "77fe629a960d15ce",
        "order": 16,
        "width": 0,
        "height": 0,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 350,
        "y": 3000,
        "wires": [
            []
        ]
    },
    {
        "id": "b2ef2b9c3a520aa6",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "name": "M12",
        "group": "77fe629a960d15ce",
        "order": 18,
        "width": 0,
        "height": 0,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 350,
        "y": 3060,
        "wires": [
            []
        ]
    },
    {
        "id": "7dead12e471d7869",
        "type": "ui_button",
        "z": "6c5403873270dadb",
        "name": "M13",
        "group": "77fe629a960d15ce",
        "order": 20,
        "width": 0,
        "height": 0,
        "passthru": false,
        "label": "",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 350,
        "y": 3140,
        "wires": [
            []
        ]
    },
    {
        "id": "b5effce.db9fd",
        "type": "comment",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "name": "Confirm all pending errors in the system diagnostic",
        "info": "",
        "x": 1950,
        "y": 1800,
        "wires": []
    },
    {
        "id": "64d6212b.ba6cd",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "device": "898040a71301c686",
        "method": "WRITE",
        "path": "diagnosis/confirm/all-errors",
        "payloadFormat": "value_type",
        "name": "",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 2000,
        "y": 1840,
        "wires": [
            [
                "8b9946cba241e429"
            ]
        ]
    },
    {
        "id": "efa89bd3d50d6f25",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "12c97d1bc9abe26f",
        "name": "make confirm errors",
        "func": "msg.payload = null;\nreturn msg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1720,
        "y": 1840,
        "wires": [
            [
                "64d6212b.ba6cd"
            ]
        ]
    },
    {
        "id": "24e389ee88bbd972",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "",
        "payloadFormat": "value",
        "name": "Read main diag text",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 2800,
        "y": 420,
        "wires": [
            [
                "c80e445464ed0695"
            ]
        ]
    },
    {
        "id": "fc0eb288e6123572",
        "type": "ctrlx-datalayer-request",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "device": "898040a71301c686",
        "method": "READ",
        "path": "",
        "payloadFormat": "value",
        "name": "Read detail diag text",
        "pendingWarnLevel": "",
        "pendingErrorLevel": "",
        "x": 2860,
        "y": 480,
        "wires": [
            [
                "cfadf4ca7d8214a9"
            ]
        ]
    },
    {
        "id": "c80e445464ed0695",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "make value",
        "func": "var newMsg = {}\nnewMsg.payload = msg.number + \": \" + msg.payload;\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 3110,
        "y": 340,
        "wires": [
            [
                "0c13851fab7f3727"
            ]
        ]
    },
    {
        "id": "cfadf4ca7d8214a9",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "make value",
        "func": "var newMsg = {}\nnewMsg.payload = msg.number + \": \" + msg.payload;\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 3090,
        "y": 440,
        "wires": [
            [
                "acf4de5c072e7fd3"
            ]
        ]
    },
    {
        "id": "8558fe01ea34b2f4",
        "type": "function",
        "z": "6c5403873270dadb",
        "name": "file valid?",
        "func": "let file = global.get(\"curFile\");\nif (file == null || file == \"\")\n{\n    node.error(\"No file selected!\", msg);\n    return null;\n}\n\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 380,
        "y": 2120,
        "wires": [
            []
        ]
    },
    {
        "id": "034c9697aed4789d",
        "type": "link out",
        "z": "6c5403873270dadb",
        "g": "29ed75cf8bc22d23",
        "name": "err from gcode",
        "mode": "link",
        "links": [
            "cf0cdc440b012695"
        ],
        "x": 2235,
        "y": 140,
        "wires": []
    },
    {
        "id": "44395687a5d14068",
        "type": "inject",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "2",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 570,
        "y": 860,
        "wires": [
            [
                "af245cae1c1d173a"
            ]
        ]
    },
    {
        "id": "7357b4773ce98413",
        "type": "switch",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "STANDBY",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "MOVING",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "DISABLED",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "ERROR",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 4,
        "x": 1210,
        "y": 880,
        "wires": [
            [
                "07f307d6da1e2ff0",
                "45f03ffe99721058"
            ],
            [
                "07f307d6da1e2ff0",
                "45f03ffe99721058"
            ],
            [
                "e5a3bb19f4e28ceb",
                "b86c8cbac0ea0541"
            ],
            [
                "e5a3bb19f4e28ceb",
                "b86c8cbac0ea0541"
            ]
        ]
    },
    {
        "id": "af245cae1c1d173a",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "readKinState",
        "func": "msg.payload = global.get(\"KineState\");\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 770,
        "y": 860,
        "wires": [
            [
                "a4f42f2d98ab4717"
            ]
        ]
    },
    {
        "id": "07f307d6da1e2ff0",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "lake blue light hold",
        "func": "var newMsg = {};\nnewMsg.background = \"lake blue\";\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1330,
        "y": 1100,
        "wires": [
            [
                "b605850cd2ee6e58"
            ]
        ]
    },
    {
        "id": "e5a3bb19f4e28ceb",
        "type": "function",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "green light hold",
        "func": "var newMsg = {};\nnewMsg.background = \"green\";\nreturn newMsg;\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1340,
        "y": 1040,
        "wires": [
            [
                "b605850cd2ee6e58"
            ]
        ]
    },
    {
        "id": "a4f42f2d98ab4717",
        "type": "rbe",
        "z": "6c5403873270dadb",
        "g": "99a10a74734987e6",
        "name": "",
        "func": "rbe",
        "gap": "",
        "start": "",
        "inout": "out",
        "septopics": true,
        "property": "payload",
        "topi": "topic",
        "x": 1010,
        "y": 860,
        "wires": [
            [
                "7357b4773ce98413"
            ]
        ]
    },
    {
        "id": "70639c6917693368",
        "type": "function",
        "z": "6c5403873270dadb",
        "name": "if READY, set TRUE",
        "func": "var newMsg = {};\nvar k_state = global.get(\"KineState\");\nif ((msg.payload == 'READY')&&(k_state =='STANDBY')) {\n    newMsg.payload = true;\n}\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1220,
        "y": 1440,
        "wires": [
            [
                "24159356f9e17757"
            ]
        ]
    },
    {
        "id": "21165deef32002c3",
        "type": "function",
        "z": "6c5403873270dadb",
        "name": "if PAUSE, set TRUE",
        "func": "var newMsg = {};\nif (msg.payload == 'PAUSE') {\n    newMsg.payload = true;\n}\nreturn newMsg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1220,
        "y": 1600,
        "wires": [
            [
                "24159356f9e17757"
            ]
        ]
    }
]