{"text_format":"2","workbook":"xlsx","n_sheets":7,"sheets":["版本页","协议概述","堆垛机数据区","输送线类数据区","提升机数据区","条码扫描数据区","入库灯"],"not_rendered":{"charts":0,"images":6,"macros":0,"external_links":0,"defined_names":1,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"run_cost":"one","rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"版本页","index":0,"n_rows":17,"n_cols":6,"rows_kept":17,"cut":false,"hidden":false,"merged":[[3,0,4,16383]]}
[]
[]
[]
["智能物流BG调度系统和西门子PLC通信协议标准化文档"]
[]
[]
["修订日期","版本号","标志","概要说明","编写人","审核人"]
["2015-06-05","V1.0","新建",null,"张博","刘少鹏、张磊"]
[]
[]
[]
[]
[]
["修订标志说明："]
["新建――文档首次编写"]
["追加――文档以追加新内容为主要目的进行了重新编写"]
["修改――文档以修改错误内容为主要目的进行了重新编写"]

{"sheet":"协议概述","index":1,"n_rows":6,"n_cols":1,"rows_kept":6,"cut":false,"hidden":false,"merged":[[0,0,0,11]]}
["[SIASUN/ILBG/SS]C-DS-CEIP-2018"]
[" 协议概述"]
["调度系统PC与西门子PLC的数据交换在PLC中完成，PLC中设两个数据区DB1和DB2。DB1作为上位机(调度系统PC,以下简称PC)的写数据区；DB2作为下位机(PLC)的写数据区。"]
["（1）DB1中的数据分为以下几种类型：\n第一类,为每个需要上位机下达任务的设备规定1个定长的数据段，写入设备指令；\n第二类，为每个触摸屏控制区域分配1个定长的数据段作为通用数据段，写入设备指令(主要用于触摸屏申请任务和设备故障后自动更改路径的处理)。\n\n"]
["（2）DB2中数据分为以下几种类型：\n第一类,为每个需要上报状态的设备规定1个定长的数据段，写入设备（或任务）的状态；\n第二类,写入上位机需要的检测开关、电机转动、故障状态等位信息；\n第三类,写入叠盘机叠盘完成信号以及叠盘数量信息；\n第四类,分别为每个条码扫描器规定1个定长的数据段，写入条码信息；\n第五类,分别为每个现场控制触摸屏规定1个定长的数据段，写入现场控制触摸屏的申请信号。\n"]
["(3)各种信号在DB区中所占数据段长度定义如下：\n堆垛机：PC→PLC定长为20个字节（byte），PLC→PC为20个字节（byte）；\n输送机：PC→PLC定长为10个字节（byte）,特殊三任务为12个字节，PLC→PC为10个字节（byte）；\n光电开关状态信息：PLC→PC定长为1个字节（byte），各占1位（bit）；\n穿梭车：PC→PLC定长为16个字节（byte），PLC→PC为16个字节（byte）；\n条码扫描器信息： PLC→PC为10+n个字节（byte）（n表示条码字符长度）；\n现场控制触摸屏：PC→PLC定长为8个字节（byte），PLC→PC为8+n个字节（byte）。(n表示条码字符长度)\n上位机给下位机发送设备动作指令时，在一条消息没有正确发送前，后续消息不能发送。正确发送的标志是PLC报告读取数据正确或报告设备已经执行发送的任务号。（下位机申请重发和申请变更除外）"]

{"sheet":"堆垛机数据区","index":2,"n_rows":63,"n_cols":6,"rows_kept":63,"cut":false,"hidden":false,"merged":[[46,4,47,4],[14,5,15,5],[32,5,33,5],[34,5,37,5],[38,5,41,5],[42,5,45,5],[46,5,47,5],[14,4,15,4],[32,4,33,4],[34,4,37,4],[38,4,41,4],[42,4,45,4],[42,2,45,2],[46,2,47,2],[14,3,15,3],[32,3,33,3],[34,3,37,3],[38,3,41,3],[42,3,45,3],[46,3,47,3],[1,1,1,5],[2,0,22,0],[26,0,49,0],[2,1,5,1],[6,1,13,1],[26,1,27,1],[28,1,31,1],[42,1,45,1],[2,2,5,2],[6,2,13,2],[14,2,15,2],[26,2,27,2],[28,2,31,2],[32,2,33,2],[34,2,37,2],[38,2,41,2]]}
["设备类型","字节索引","代表意义","取值","值含义","备注"]
["堆垛机下行消息:PC->PLC","堆垛机按照货叉个数分成： 单叉堆垛机、双叉堆垛机和三叉堆垛机。"]
["单叉堆垛机DB1：共20字节",0,"读/写标志位",0,"上位机对堆垛机报告运行应答","收到堆垛机运行状态回复0"]
[null,null,null,1,"上位机写入标记","每次写入新命令为1"]
[null,null,null,2,"上位机对下位机上报完成的应答","收到堆垛机完成应答2"]
[null,null,null,4,"上位机手动清除设备故障","手动复位报警,(WCS发4之前先发0)\n"]
[null,1,"设备指令",1,"召回","堆垛机升降和水平方向上都回到原点，发送指令时不用带着坐标，只发命令"]
[null,null,null,2,"将取","堆垛机货叉停在取货位置，不出叉"]
[null,null,null,3,"将送","堆垛机货叉停在送货位置，不出叉"]
[null,null,null,4,"取货","堆垛机伸叉取货"]
[null,null,null,5,"送货","堆垛机伸叉送货"]
[null,null,null,6,"取送货"]
[null,null,null,7,"运动","给电气发送目标位置，排、列、层"]
[null,null,null,9,"灭火","打开消火栓灭火"]
[null,2,"设备指令号","1～30000","设备命令唯一标准","1～30000"]
[null,3]
[null,4,"取货位列(X)坐标",null,null,"沿轨道方向，单侧出入巷道，入库站台或输送线坐标是1，远处递增；双侧出入，堆垛机条码小的一侧是1"]
[null,5,"取货位层(Y)坐标",null,null,"沿高度方向，最下层货架坐标是1，向上递增"]
[null,6,"取货位排(Z)坐标",null,null,"面向直道堆垛机控制柜触摸屏，左侧为1，右侧为2。1表示左侧出叉，2表示右侧出叉。（如为“U”形轨道或者道岔结构，则在堆垛机零点处，面向控制柜触摸屏，从左至右依次为1排，2排，3排，4排）。"]
[null,7,"送货位列(X)坐标",null,null,"沿轨道方向，单侧出入巷道，入库站台或输送线坐标是1，远处递增；双侧出入，堆垛机条码小的一侧是1"]
[null,8,"送货位层(Y)坐标",null,null,"沿高度方向，最下层货架坐标是1，向上递增"]
[null,9,"送货位排(Z)坐标",null,null,"面向直道堆垛机控制柜触摸屏，左侧为1，右侧为2。1表示左侧出叉，2表示右侧出叉。（如为“U”形轨道或者道岔结构，则在堆垛机零点处，面向控制柜触摸屏，从左至右依次为1排，2排，3排，4排）。"]
[null,"10～19","备用",null,null,"备用"]
[]
[]
["堆垛机上行消息:PLC->PC"]
["堆垛机DB2：共20个字节",0,"读/写标志位",1,"写入数据","电气更新状态时候，写入1"]
[null,null,null,2,"读出数据正确"]
[null,1,"设备状态\n",0,"设备空闲"]
[null,null,null,1,"任务执行"]
[null,null,null,2,"任务完成"]
[null,null,null,"other","设备故障","具体参见故障代码"]
[null,2,"任务号","1～30000","设备命令唯一标志","即上位机下达任务时的任务号"]
[null,3]
[null,4,"当前X测距值/坐标",null,"条码绝对值（mm）或者坐标（1,2）","沿轨道方向，数值>0;数值等于0时候，调度认为设备离线。"]
[null,5]
[null,6]
[null,7]
[null,8,"当前Y测距值/坐标",null,"条码绝对值（mm）或者坐标（1,2）","沿高度方向，数值>0;数值等于0时候，调度认为设备离线。"]
[null,9]
[null,10]
[null,11]
[null,12,"Z坐标",null,"堆垛机所在巷道号","只对道岔堆垛机有效，表示堆垛机所在的巷道（1,2,3.）；非道岔堆垛机默认都是0."]
[]
[]
[]
[null,13,"堆垛机开关状态",null,null,"堆垛机设备用字节分别表示不同开关，如下：\n.0 叉1载货开关；\n.1 叉2载货开关；\n.2 叉3载货开关；\n.3 叉1中位开关；\n.4 叉2中位开关；\n.5 叉3中位开关"]
[null,14]
[null,15,"货叉的状态","0-8",null,"0:中位 \n1:向左第1伸位伸出\n2:左第2伸位伸出 \n3:向左伸出到位\n4:左回收\n5:向右第1伸位伸出\n6:右第2伸位伸出\n7:向右伸出到位\n8:右回收"]
[null,"16～19","备用",null,null,"备用"]
[]
[]
["注释：双申堆垛机按照单叉堆垛机协议执行"]
["设备","DB1地址","DB1长度","DB2地址","DB2长度"]
[11001,0,"70（调度20，三维50）",0,"70（调度20，三维50）"]
[11002,70,"70（调度20，三维50）",70,"70（调度20，三维50）"]
[11003,140,"70（调度20，三维50）",140,"70（调度20，三维50）"]
[11004,210,"70（调度20，三维50）",210,"70（调度20，三维50）"]
[11005,280,"70（调度20，三维50）",280,"70（调度20，三维50）"]
[11006,350,"70（调度20，三维50）",350,"70（调度20，三维50）"]
[11007,420,"70（调度20，三维50）",420,"70（调度20，三维50）"]
[11008,490,"70（调度20，三维50）",490,"70（调度20，三维50）"]
[11009,560,"70（调度20，三维50）",560,"70（调度20，三维50）"]

{"sheet":"输送线类数据区","index":3,"n_rows":300,"n_cols":6,"rows_kept":300,"cut":false,"hidden":false,"merged":[[92,5,93,5],[44,5,47,5],[59,5,60,5],[61,5,62,5],[72,5,73,5],[74,5,75,5],[76,5,77,5],[86,5,87,5],[88,5,89,5],[90,5,91,5],[6,5,10,5],[11,5,12,5],[13,5,16,5],[24,5,25,5],[26,5,27,5],[28,5,31,5],[38,5,39,5],[40,5,41,5],[42,5,43,5],[90,3,91,3],[92,3,93,3],[6,4,10,4],[11,4,12,4],[13,4,16,4],[24,4,25,4],[26,4,27,4],[28,4,31,4],[38,4,39,4],[40,4,41,4],[42,4,43,4],[44,4,47,4],[59,4,60,4],[61,4,62,4],[72,4,73,4],[74,4,75,4],[76,4,77,4],[86,4,87,4],[88,4,89,4],[90,4,91,4],[92,4,93,4],[76,2,77,2],[80,2,81,2],[82,2,85,2],[86,2,87,2],[88,2,89,2],[90,2,91,2],[92,2,93,2],[6,3,10,3],[11,3,12,3],[13,3,16,3],[24,3,25,3],[26,3,27,3],[28,3,31,3],[38,3,39,3],[40,3,41,3],[42,3,43,3],[44,3,47,3],[59,3,60,3],[61,3,62,3],[72,3,73,3],[74,3,75,3],[76,3,77,3],[86,3,87,3],[88,3,89,3],[44,2,47,2],[53,2,54,2],[55,2,58,2],[59,2,60,2],[61,2,62,2],[66,2,67,2],[68,2,71,2],[72,2,73,2],[74,2,75,2],[21,2,23,2],[24,2,25,2],[26,2,27,2],[28,2,31,2],[33,2,34,2],[35,2,37,2],[38,2,39,2],[40,2,41,2],[42,2,43,2],[1,1,1,5],[2,0,17,0],[19,0,31,0],[33,0,48,0],[53,0,64,0],[66,0,78,0],[80,0,93,0],[2,1,3,1],[4,1,10,1],[19,1,20,1],[21,1,23,1],[33,1,34,1],[35,1,37,1],[53,1,54,1],[55,1,58,1],[66,1,67,1],[68,1,71,1],[80,1,81,1],[82,1,85,1],[2,2,3,2],[4,2,10,2],[11,2,12,2],[13,2,16,2],[19,2,20,2]]}
["设备类型","字节索引","代表意义","取值","值含义","备注"]
["输送线下行消息PC->PLC","输送线类设备包括：输送机、提升机、叠盘机、拆盘机"]
["输送机DB1：共10字节",0,"读/写标志位",1,"写入数据","虚拟站台只用到该读/写标志位字节，即上位机对下位机上报完成的应答，其它字节备用。"]
[null,null,null,2,"读出数据正确","上位机对下位机上报状态的应答或是用于清除设备故障"]
[null,1,"设备指令",1,"电机正转","（任务起点设备与目标设备相同，即本输送机移载）"]
[null,null,null,2,"电机反转"]
[null,null,null,6,"送出","任务起点设备与目标设备不同，即从当前输送机输送至目标输送机"]
[]
[]
[]
[]
[null,2,"任务号","1～30000",null,"范围:1～30000"]
[null,3]
[null,4,"目标输送线设备号",null,null,"命令是正转或者反转时候，值为0代表单一设备控制，无目标设备编号。\n命令是送出的时候，表示目标设备编号，由于现场设备编号可能超出两个字节的范围，因此把设备编号改为4字节存储。"]
[null,5]
[null,6]
[null,7]
[null,"8～9","备用（三维）",null,null,"备用"]
[]
["双任务输送机或者双任务顶升站台DB1：共10字节",0,"读/写标志位",1,"写入数据","虚拟站台只用到该读/写标志位字节，即上位机对下位机上报完成的应答，其它字节备用。"]
[null,null,null,2,"读出数据正确","上位机对下位机上报状态的应答或是用于清除设备故障"]
[null,1,"设备指令",1,"电机正转","（任务起点设备与目标设备相同，即本输送机移载）"]
[null,null,null,2,"电机反转"]
[null,null,null,6,"送出","任务起点设备与目标设备不同，即从当前输送机输送至目标输送机"]
[null,2,"任务号1","1～30000",null,"范围:1～30000，对应堆垛机货叉2位置任务号（近货架）"]
[null,3]
[null,4,"任务号2","1～30000",null,"范围:1～30000，对应堆垛机货叉1位置任务号（远货架）"]
[null,5]
[null,6,"目标输送线设备号",null,null,"命令是正转或者反转时候，值为0代表单一设备控制，无目标设备编号。\n命令是送出的时候，表示目标设备编号，由于现场设备编号可能超出两个字节的范围，因此把设备编号改为4字节存储。"]
[null,7]
[null,8]
[null,9]
[]
["三任务输送机或者三任务顶升站台DB1：共12字节",0,"读/写标志位",1,"写入数据","虚拟站台只用到该读/写标志位字节，即上位机对下位机上报完成的应答，其它字节备用。"]
[null,null,null,2,"读出数据正确","上位机对下位机上报状态的应答或是用于清除设备故障"]
[null,1,"设备指令",1,"电机正转","（任务起点设备与目标设备相同，即本输送机移载）"]
[null,null,null,2,"电机反转"]
[null,null,null,6,"送出","任务起点设备与目标设备不同，即从当前输送机输送至目标输送机"]
[null,2,"任务号1","1～30000",null,"范围:1～30000，对应堆垛机货叉3位置任务号（近货架）"]
[null,3]
[null,4,"任务号2","1～30000",null,"范围:1～30000，对应堆垛机货叉2位置任务号"]
[null,5]
[null,6,"任务号3","1～30000",null,"范围:1～30000，对应堆垛机货叉1位置任务号（远货架）"]
[null,7]
[null,8,"目标输送线设备号",null,null,"命令是正转或者反转时候，值为0代表单一设备控制，无目标设备编号。\n命令是送出的时候，表示目标设备编号，由于现场设备编号可能超出两个字节的范围，因此把设备编号改为4字节存储。"]
[null,9]
[null,10]
[null,11]
[]
[]
[]
[]
["输送线上行消息 PLC->PC"]
["输送机、提升机、叠盘机拆盘机DB2 （共10个字节）",0,"读/写标志位",1,"写入数据"]
[null,null,null,2,"读出数据正确"]
[null,1,"设备状态",0,"设备空闲"]
[null,null,null,1,"任务执行"]
[null,null,null,2,"任务完成","送出命令，只有在目标(终点)输送设备上才报告完成"]
[null,null,null,"other","设备故障","具体参见故障代码"]
[null,2,"任务号","1～30000",null,"即上位机下达任务时的任务号"]
[null,3]
[null,4,"输送线开关状态",null,null,"输送机设备用字节分别表示不同开关，如下：\n.0 输送线或顶升有货开关（正转入口）；\n.1 输送线或顶升有货开关（正转出口）；\n.2 顶升站台高位开关；\n.3 顶升站台低位开关；\n.4 转台的时候 0:表示0度位置 1:表示90度的位置\n"]
[null,5]
[null,6,"输送线运行状态",null,null," 0:不动 1上升 2下降 3正传 4:反转  5:转台正在向0旋转,6:转台正在向90旋转  \n（注意： 输送线和顶升移栽,转台，提升机等设备输送线为单向的时候，报0 即可，双向的时候报3和4) 1,2表示顶升移栽和提升机上升还是下降)\n"]
[null,"7～9","备用（三维）",null,null,"备用"]
[]
["双任务输送机或双任务顶升站台 （共10个字节）",0,"读/写标志位",1,"写入数据"]
[null,null,null,2,"读出数据正确"]
[null,1,"设备状态",0,"设备空闲"]
[null,null,null,1,"任务执行"]
[null,null,null,2,"任务完成","送出命令，只有在目标(终点)输送设备上才报告完成"]
[null,null,null,"other","设备故障","具体参见故障代码"]
[null,2,"任务号1","1～30000",null,"对应堆垛机货叉2位置任务号（近货架）"]
[null,3]
[null,4,"任务号2","1～30000",null,"对应堆垛机货叉1位置任务号（远货架）"]
[null,5]
[null,6,"输送线开关状态"]
[null,7]
[null,"8～9","备用",null,null,"备用"]
[]
["三任务输送机或双任务顶升站台 （共10个字节）",0,"读/写标志位",1,"写入数据"]
[null,null,null,2,"读出数据正确"]
[null,1,"设备状态",0,"设备空闲"]
[null,null,null,1,"任务执行"]
[null,null,null,2,"任务完成","送出命令，只有在目标(终点)输送设备上才报告完成"]
[null,null,null,"other","设备故障","具体参见故障代码"]
[null,2,"任务号1","1～30000",null,"对应堆垛机货叉3位置任务号"]
[null,3]
[null,4,"任务号2","1～30000",null,"对应堆垛机货叉2位置任务号"]
[null,5]
[null,6,"任务号3","1～30000",null,"对应堆垛机货叉1位置任务号"]
[null,7]
[null,8,"输送线开关状态"]
[null,9]
["如果现场是在巷道两侧都有入库，且是多任务顶升，则按照货位编码小的一侧三个任务对应货叉3,2,1；另外一侧相反三个任务对应货叉1,2,3"]
["设备","DB1地址","DB1长度","DB2地址","DB2长度"]
[12001,600,10,600,10]
[12002,610,10,610,10]
[12003,620,10,620,10]
[12004,630,10,630,10]
[12005,640,10,640,10]
[12006,650,10,650,10]
[12007,660,10,660,10]
[12008,670,10,670,10]
[12009,680,10,680,10]
[12010,690,10,690,10]
[12011,700,10,700,10]
["13701（顶升）",710,10,710,10]
["13702（顶升）",720,10,720,10]
["13703（顶升）",730,10,730,10]
["13704（顶升）",740,10,740,10]
["13705（顶升）",750,10,750,10]
["13706（顶升）",760,10,760,10]
["13707（顶升）",770,10,770,10]
["13708（顶升）",780,10,780,10]
["13709（顶升）",790,10,790,10]
[42001,800,10,800,10]
[42002,810,10,810,10]
[42003,820,10,820,10]
[42004,830,10,830,10]
[42005,840,10,840,10]
[42006,850,10,850,10]
[42007,860,10,860,10]
[42008,870,10,870,10]
[42009,880,10,880,10]
[42010,890,10,890,10]
[42011,900,10,900,10]
[42012,910,10,910,10]
[42013,920,10,920,10]
[42014,930,10,930,10]
["43101（顶升）",940,10,940,10]
["43102（顶升）",950,10,950,10]
["43103（顶升）",960,10,960,10]
["43104（顶升）",970,10,970,10]
[22001,980,10,980,10]
[22002,990,10,990,10]
[22003,1000,10,1000,10]
[22004,1010,10,1010,10]
[22005,1020,10,1020,10]
[22006,1030,10,1030,10]
[22007,1040,10,1040,10]
[22008,1050,10,1050,10]
[22009,1060,10,1060,10]
[22010,1070,10,1070,10]
[22011,1080,10,1080,10]
[22012,1090,10,1090,10]
[22013,1100,10,1100,10]
[22014,1110,10,1110,10]
[22015,1120,10,1120,10]
[22016,1130,10,1130,10]
[22017,1140,10,1140,10]
[22018,1150,10,1150,10]
[22019,1160,10,1160,10]
[22020,1170,10,1170,10]
[22021,1180,10,1180,10]
[22022,1190,10,1190,10]
[22023,1200,10,1200,10]
[22024,1210,10,1210,10]
[22025,1220,10,1220,10]
[22026,1230,10,1230,10]
[22027,1240,10,1240,10]
[22028,1250,10,1250,10]
[22029,1260,10,1260,10]
[22030,1270,10,1270,10]
[22031,1280,10,1280,10]
[22032,1290,10,1290,10]
[22033,1300,10,1300,10]
[22034,1310,10,1310,10]
[22035,1320,10,1320,10]
[22036,1330,10,1330,10]
[22037,1340,10,1340,10]
["23101（顶升）",1350,10,1350,10]
["23102（顶升）",1360,10,1360,10]
["23103（顶升）",1370,10,1370,10]
["23104（顶升）",1380,10,1380,10]
["23105（顶升）",1390,10,1390,10]
["23106（顶升）",1400,10,1400,10]
["23107（顶升）",1410,10,1410,10]
["23108（顶升）",1420,10,1420,10]
["23109（顶升）",1430,10,1430,10]
["23110（顶升）",1440,10,1440,10]
["23111（顶升）",1450,10,1450,10]
["23112（顶升）",1460,10,1460,10]
["23113（顶升）",1470,10,1470,10]
["23701（顶升）",1480,10,1480,10]
["23702（顶升）",1490,10,1490,10]
["23703（顶升）",1500,10,1500,10]
["23704（顶升）",1510,10,1510,10]
["23705（顶升）",1520,10,1520,10]
["23706（顶升）",1530,10,1530,10]
["23707（顶升）",1540,10,1540,10]
["23708（顶升）",1550,10,1550,10]
["23709（顶升）",1560,10,1560,10]
[52001,1570,10,1570,10]
[52002,1580,10,1580,10]
[52003,1590,10,1590,10]
[52004,1600,10,1600,10]
[52005,1610,10,1610,10]
[52006,1620,10,1620,10]
[52007,1630,10,1630,10]
[52008,1640,10,1640,10]
[52009,1650,10,1650,10]
[52010,1660,10,1660,10]
[52011,1670,10,1670,10]
[52012,1680,10,1680,10]
[52013,1690,10,1690,10]
[52014,1700,10,1700,10]
[52015,1710,10,1710,10]
[52016,1720,10,1720,10]
[52017,1730,10,1730,10]
[52018,1740,10,1740,10]
[52019,1750,10,1750,10]
[52020,1760,10,1760,10]
[52021,1770,10,1770,10]
[52022,1780,10,1780,10]
[52023,1790,10,1790,10]
[52024,1800,10,1800,10]
[52025,1810,10,1810,10]
["53101（顶升）",1820,10,1820,10]
["53102（顶升）",1830,10,1830,10]
["53103（顶升）",1840,10,1840,10]
["53104（顶升）",1850,10,1850,10]
["53105（顶升）",1860,10,1860,10]
["53106（顶升）",1870,10,1870,10]
["57701（拍整机）",1880,10,1880,10]
["57702（拍整机）",1890,10,1890,10]
[32001,1900,10,1900,10]
[32002,1910,10,1910,10]
[32003,1920,10,1920,10]
[32004,1930,10,1930,10]
[32005,1940,10,1940,10]
[32006,1950,10,1950,10]
[32007,1960,10,1960,10]
[32008,1970,10,1970,10]
[32009,1980,10,1980,10]
[32010,1990,10,1990,10]
[32011,2000,10,2000,10]
[32012,2010,10,2010,10]
[32013,2020,10,2020,10]
[32014,2030,10,2030,10]
[32015,2040,10,2040,10]
[32016,2050,10,2050,10]
[32017,2060,10,2060,10]
[32018,2070,10,2070,10]
[32019,2080,10,2080,10]
[32020,2090,10,2090,10]
[32021,2100,10,2100,10]
[32022,2110,10,2110,10]
[32023,2120,10,2120,10]
[32024,2130,10,2130,10]
[32025,2140,10,2140,10]
[32026,2150,10,2150,10]
[32027,2160,10,2160,10]
[32028,2170,10,2170,10]
[32029,2180,10,2180,10]
[32030,2190,10,2190,10]
[32031,2200,10,2200,10]
[32032,2210,10,2210,10]
[32033,2220,10,2220,10]
[32034,2230,10,2230,10]
[32035,2240,10,2240,10]
[32036,2250,10,2250,10]
[32037,2260,10,2260,10]
[32038,2270,10,2270,10]
[32039,2280,10,2280,10]
[32040,2290,10,2290,10]
[32041,2300,10,2300,10]
[32042,2310,10,2310,10]
[32043,2320,10,2320,10]
[32044,2330,10,2330,10]
[32045,2340,10,2340,10]
[32046,2350,10,2350,10]
[32047,2360,10,2360,10]
[32048,2370,10,2370,10]
[32049,2380,10,2380,10]
[32050,2390,10,2390,10]
[32051,2400,10,2400,10]
[32052,2410,10,2410,10]
["33101（顶升）",2420,10,2420,10]
["33102（顶升）",2430,10,2430,10]
["33103（顶升）",2440,10,2440,10]
["33104（顶升）",2450,10,2450,10]
["33105（顶升）",2460,10,2460,10]
["33106（顶升）",2470,10,2470,10]
["33107（顶升）",2480,10,2480,10]
["33108（顶升）",2490,10,2490,10]
["33109（顶升）",2500,10,2500,10]
["33110（顶升）",2510,10,2510,10]
["33111（顶升）",2520,10,2520,10]
["33112（顶升）",2530,10,2530,10]
["33113（顶升）",2540,10,2540,10]
["33701（顶升）",2550,10,2550,10]
["33702（顶升）",2560,10,2560,10]
["33703（顶升）",2570,10,2570,10]
["33704（顶升）",2580,10,2580,10]
["33705（顶升）",2590,10,2590,10]
["33706（顶升）",2600,10,2600,10]
["33707（顶升）",2610,10,2610,10]
["33708（顶升）",2620,10,2620,10]
["33709（顶升）",2630,10,2630,10]

{"sheet":"提升机数据区","index":4,"n_rows":76,"n_cols":6,"rows_kept":76,"cut":false,"hidden":false,"merged":[[42,4,45,4],[59,4,60,4],[61,4,64,4],[65,4,66,4],[9,5,10,5],[11,5,14,5],[24,5,25,5],[26,5,29,5],[40,5,41,5],[42,5,45,5],[59,5,60,5],[61,5,64,5],[65,5,66,5],[9,4,10,4],[11,4,14,4],[24,4,25,4],[26,4,29,4],[40,4,41,4],[55,2,58,2],[59,2,60,2],[61,2,64,2],[65,2,66,2],[9,3,10,3],[11,3,14,3],[24,3,25,3],[26,3,29,3],[40,3,41,3],[42,3,45,3],[59,3,60,3],[61,3,64,3],[65,3,66,3],[33,2,36,2],[37,2,39,2],[40,2,41,2],[42,2,45,2],[53,2,54,2],[11,2,13,2],[17,2,20,2],[21,2,23,2],[24,2,25,2],[26,2,29,2],[1,1,1,4],[2,0,15,0],[17,0,31,0],[33,0,47,0],[53,0,68,0],[2,1,5,1],[6,1,8,1],[17,1,20,1],[21,1,23,1],[33,1,36,1],[37,1,39,1],[53,1,54,1],[55,1,58,1],[2,2,5,2],[6,2,8,2],[9,2,10,2]]}
["设备类型","字节索引","代表意义","取值","值含义","备注"]
["穿梭车下行消息 PC->PLC","穿梭车按照货位个数分成 单货位穿梭车、双工位双叉、双工位单叉"]
["单工位穿梭车DB1：共16字节",0,"读/写标志位",0,"穿梭车运行应答","穿梭车报告运行状态回复0"]
[null,null,null,1,"上位机写入标记","每次写入新命令为1"]
[null,null,null,2,"上位机对下位机上报状态的应答","穿梭车报告完成状态为回复2"]
[null,null,null,4,"上位机手动清除设备故障","手动复位报警,(WCS发4之前先发0)"]
[null,1,"设备指令",2,"取货","到指定位置取货"]
[null,null,null,3,"送货","到指定位置送货"]
[null,null,null,7,"运动","穿梭车运动到指定位置"]
[null,2,"任务号","1～30000","任务唯一标示","范围:1～30000。"]
[null,3]
[null,4,"目标输送机号",null,null,"穿梭车停靠位置，由于现场设备编号可能超出两个字节的范围，因此把设备编号改为4字节存储。"]
[null,5]
[null,6]
[null,7]
[null,"8～15","备用",null,null,"备用"]
[]
["多工位穿梭车DB1：共16字节\n类似双申堆垛机",0,"读/写标志位",0,"穿梭车运行应答","穿梭车报告运行状态回复0"]
[null,null,null,1,"上位机写入标记","每次写入新命令为1"]
[null,null,null,2,"上位机对下位机上报状态的应答","穿梭车报告完成状态为回复2"]
[null,null,null,4,"上位机手动清除设备故障","手动复位报警,(WCS发4之前先发0)"]
[null,1,"设备指令",2,"取货","到指定位置取货"]
[null,null,null,3,"送货","到指定位置送货"]
[null,null,null,7,"运动","穿梭车运动到指定位置"]
[null,2,"任务号","1～30000","任务唯一标示","范围:1～30000"]
[null,3]
[null,4,"目标输送机号",null,null,"穿梭车停靠位置，由于现场设备编号可能超出两个字节的范围，因此把设备编号改为4字节存储。"]
[null,5]
[null,6]
[null,7]
[null,8,"取货个数标记","1,2,3",null,"取货/放货的个数。穿梭车自动判断左右，调度软件负责记录货物位置和取送货顺序逻辑。"]
[null,"9～15","备用",null,null,"备用"]
[]
["双工位穿梭车DB1：共16字节\n两个货叉能同时取货，同时送货；也能单独取货，单独送货",0,"读/写标志位",0,"穿梭车运行应答","穿梭车报告运行状态回复0"]
[null,null,null,1,"上位机写入标记","每次写入新命令为1"]
[null,null,null,2,"上位机对下位机上报状态的应答","穿梭车报告完成状态为回复2"]
[null,null,null,4,"上位机手动清除设备故障","手动复位报警,(WCS发4之前先发0)"]
[null,1,"设备指令",2,"取货","到指定位置取货"]
[null,null,null,3,"送货","到指定位置送货"]
[null,null,null,7,"运动","穿梭车运动到指定位置"]
[null,2,"任务号","1～30000","任务唯一标示","范围:1～30000"]
[null,3]
[null,4,"目标位置",null,null,"穿梭车停靠位置，由于现场设备编号可能超出两个字节的范围，因此把设备编号改为4字节存储。"]
[null,5]
[null,6]
[null,7]
[null,8,"叉编码",null,null,"1叉或者2叉"]
[null,"9～15","备用",null,null,"备用"]
["注释：1叉，2叉定义类似堆垛机，面对穿梭车控制柜，距离近的是1叉，距离远的是2叉；"]
["      Z1、Z2 取值，面对穿梭车控制柜，左侧1，右侧2；0表示不出叉；"]
[]
[]
["穿梭车上行消息 PLC-> PC"]
["穿梭车DB2：共15个字节",0,"读/写标志位",1,"写入数据"]
[null,null,null,2,"读出数据正确"]
[null,1,"设备状态",0,"设备空闲"]
[null,null,null,1,"任务执行"]
[null,null,null,2,"任务完成"]
[null,null,null,"other","设备故障","具体参见故障代码"]
[null,2,"任务号","1～30000","任务唯一标示","即上位机下达任务时的任务号"]
[null,3]
[null,4,"当前X测距值/坐标",null,"条码绝对值（mm）或者坐标（1,2）","沿轨道方向，数值>0;数值等于0时候，调度认为设备离线。"]
[null,5]
[null,6]
[null,7]
[null,8,"穿梭车开关状态",null,null,"穿梭车设备用字节分别表示不同开关，如下：\n.0 叉1载货开关；\n.1 叉2载货开关；\n.2 叉3载货开关；\n.3 叉1中位开关；\n.4 叉2中位开关；\n.5 叉3中位开关"]
[null,9]
[null,10,"穿梭车输送线状态","0,1,2",null,"0不动  \n1正转 \n2反转"]
[null,"11～15","备用",null,null,"备用"]
["注释：多叉穿梭车，PLC只负责上报调度下达的任务号，多个货物关联任务处理有调度软件负责；"]
["设备","DB1地址","DB1长度","DB2地址","DB2长度"]
[19001,2700,"40（调度10，三维30）",2700,"40（调度10，三维30）"]
[49101,2740,"40（调度10，三维30）",2740,"40（调度10，三维30）"]
[49102,2780,"40（调度10，三维30）",2780,"40（调度10，三维30）"]
[59101,2820,"40（调度10，三维30）",2820,"40（调度10，三维30）"]
[59102,2860,"40（调度10，三维30）",2860,"40（调度10，三维30）"]

{"sheet":"条码扫描数据区","index":5,"n_rows":21,"n_cols":6,"rows_kept":21,"cut":false,"hidden":false,"merged":[[1,1,1,5],[9,0,9,5],[2,0,6,0],[2,1,3,1],[2,2,3,2]]}
["设备类型","字节索引","代表意义","取值","值含义","备注"]
["条码扫描只有上行消息：PLC->PC","条码扫描器类设备包括：单个条码扫描，条码群读和RFID"]
["条码DB2",0,"读/写标志位",1,"写入数据","PLC上报新条码时候写1；"]
[null,null,null,2,"读出数据正确","调度读取成功后写2；"]
[null,1,"高度",null,null,"无货写1，低货写2，高货写3"]
[null,"2~5","重量"]
[null,"10～n","条码",null,null,"1、不同条码之间用\"；\"隔开；（分号的asc码值）\n2、需要条码扫描器所在的输送机空闲后再上报条码；\n3、需要条码扫描器扫读到条码后即刻上报；\n（根据现场实际情况，调度和电气协议指明条码上报方式）"]
[]
[]
["入库申请时：如果下位机未读到条码或读到的是残码，读/写标志位仍然要写为1，条码信息对应的字节全部写入1，电气自动回退，并把错误信息上报调度软件。上位机读到条码后将DB2中读/写标志位字节改为2，本次上报完成。"]
["设备","DB1地址","DB1长度","DB2地址","DB2长度"]
[16001,2900,20,2900,20]
[46001,2920,20,2920,20]
[46002,2940,20,2940,20]
[48001,2960,20,2960,20]
[48002,2980,20,2980,20]
[56001,3000,20,3000,20]
[56002,3020,20,3020,20]
[58001,3040,20,3040,20]
[58002,3060,20,3060,20]
[null,"二期预留1500-2000",null,"二期预留1500-2000"]

{"sheet":"入库灯","index":6,"n_rows":12,"n_cols":5,"rows_kept":12,"cut":false,"hidden":false,"merged":[]}
[1,"一楼西侧回退，在哪处理"]
[13001,1380,10,1380,10]
[13002,1390,10,1390,10]
[13003,1400,10,1400,10]
[13004,1410,10,1410,10]
[13005,1420,10,1420,10]
[23001,1430,10,1430,10]
[23002,1440,10,1440,10]
[23003,1450,10,1450,10]
[23004,1460,10,1460,10]
[23005,1470,10,1470,10]
[33001,1480,10,1480,10]