| | |
| | | <div style="padding: 10px;height: 100%"> |
| | | <!-- 日志监控板 --> |
| | | <div class="log-board"> |
| | | <div class="command-log" id="commandLogId"> |
| | | <div class="command-log" id="commandLogId" style="width: 5%;"> |
| | | <!-- <div data-shuttleNo="1" class="shuttle-command-item">--> |
| | | <!-- <label>1#</label>--> |
| | | <!-- <button class="demoBtn pos-btn">数据维护</button>--> |
| | |
| | | <!-- </div>--> |
| | | </div> |
| | | <!-- 堆垛机状态位信息 --> |
| | | <div class="shuttle-state"> |
| | | <div class="shuttle-state" style="width: 95%;"> |
| | | <table id="shuttle-state-table"> |
| | | <thead> |
| | | <tr> |
| | |
| | | <th>电量</th> |
| | | <th>电池温度</th> |
| | | <th>错误编号</th> |
| | | <th>plc输出状态IO</th> |
| | | <th>plc输出状态IO-顶升位</th> |
| | | <th>plc输出状态IO-换向位</th> |
| | | <th>plc输出状态IO-抱闸位</th> |
| | | <th>plc输出状态IO-充电位</th> |
| | | <th>错误信息码</th> |
| | | <th>plc输入状态</th> |
| | | <th>当前或之前二维码</th> |
| | |
| | | <th>升降伺服负载</th> |
| | | <th>行走伺服负载</th> |
| | | <th>作业标记</th> |
| | | <th>库位号</th> |
| | | <th>当前楼层</th> |
| | | </tr> |
| | | </thead> |
| | | <tbody> |
| | |
| | | |
| | | <!-- 设备任务操作 --> |
| | | <div class="task-operator"> |
| | | <div style="display: flex;"> |
| | | <div class="task-operator" style="height: auto;width: 100%;"> |
| | | <div class="operator-item" style="height: auto"> |
| | | <span class="select-title">源库位/目标库位</span> |
| | | <div class="select-container" style="height: auto"> |
| | | <div class="select-container-item"> |
| | | <span>源库位</span> |
| | | <label><input id="sourceLocNo" type="text" name="sourceLocNo" /></label> |
| | | </div> |
| | | <div class="select-container-item"> |
| | | <span>目标库位</span> |
| | | <label><input id="distLocNo" type="text" name="distLocNo" /></label> |
| | | <fieldset style="height: auto;padding-bottom: 20px;"> |
| | | <legend>手动操作</legend> |
| | | <div style="display: flex;"> |
| | | <div style="width: 30%;"> |
| | | <div class="operator-item" style="height: auto;width: 100%;"> |
| | | <span class="select-title">源库位/目标库位</span> |
| | | <div class="select-container" style="height: auto;padding: 30px 10px 20px 10px;"> |
| | | <div class="select-container-item"> |
| | | <span>源库位</span> |
| | | <label><input id="sourceLocNo" type="text" name="sourceLocNo" /></label> |
| | | </div> |
| | | <div class="select-container-item"> |
| | | <span>目标库位</span> |
| | | <label><input id="distLocNo" type="text" name="distLocNo" /></label> |
| | | </div> |
| | | |
| | | <div style="margin-top: 10px;"> |
| | | <button class="item" onclick="shuttleOperator(1)">入库</button> |
| | | <button class="item" onclick="shuttleOperator(2)">出库</button> |
| | | <button class="item" onclick="shuttleOperator(14)">移动到目标库位</button> |
| | | <button class="item" onclick="shuttleOperator(16)">移动到提升机</button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <fieldset style="height: auto;padding-bottom: 20px;"> |
| | | <legend>手动操作</legend> |
| | | <div class="button-group"> |
| | | <button class="item" onclick="shuttleOperator(1)">入库</button> |
| | | <button class="item" onclick="shuttleOperator(2)">出库</button> |
| | | <button class="item" onclick="shuttleOperator(3)">托盘顶升</button> |
| | | <button class="item" onclick="shuttleOperator(4)">托盘下降</button> |
| | | <button class="item" onclick="shuttleOperator(5)">左移</button> |
| | | <button class="item" onclick="shuttleOperator(6)">右移</button> |
| | | <button class="item" onclick="shuttleOperator(7)">前移</button> |
| | | <button class="item" onclick="shuttleOperator(8)">后移</button> |
| | | <button class="item" onclick="shuttleOperator(9)">复位</button> |
| | | <div style="width: 40%;"> |
| | | <div class="operator-item" style="height: auto;width: 100%;"> |
| | | <span class="select-title">相关指令</span> |
| | | <div class="select-container" style="height: auto;padding: 30px 10px 10px 10px;"> |
| | | <div class="button-group"> |
| | | <button class="item" onclick="shuttleOperator(3)">托盘顶升</button> |
| | | <button class="item" onclick="shuttleOperator(4)">托盘下降</button> |
| | | <button class="item" onclick="shuttleOperator(5)">左移</button> |
| | | <button class="item" onclick="shuttleOperator(6)">右移</button> |
| | | <button class="item" onclick="shuttleOperator(7)">后移</button> |
| | | <button class="item" onclick="shuttleOperator(8)">前移</button> |
| | | <button class="item" onclick="shuttleOperator(9)">复位</button> |
| | | <button class="item" onclick="shuttleOperator(10)">正方向(右)寻库位</button> |
| | | <button class="item" onclick="shuttleOperator(11)">负方向(左)寻库位</button> |
| | | <button class="item" onclick="shuttleOperator(12)">正方向(前)寻库位</button> |
| | | <button class="item" onclick="shuttleOperator(13)">负方向(后)寻库位</button> |
| | | <button class="item" onclick="shuttleOperator(15)">充电开关</button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div style="width: 20%;"> |
| | | <div class="operator-item" style="height: auto;width: 100%;"> |
| | | <span class="select-title">设置配置参数</span> |
| | | <div class="select-container" style="height: auto;padding: 30px 10px 10px 10px;"> |
| | | <div class="select-container-item"> |
| | | <span>运行速度</span> |
| | | <label><input id="runSpeed" type="text" name="runSpeed" /></label> |
| | | </div> |
| | | <div class="select-container-item"> |
| | | <span>充电阈值</span> |
| | | <label><input id="chargeLine" type="text" name="runSpeed" /></label> |
| | | </div> |
| | | |
| | | <div> |
| | | <button class="item" onclick="shuttleParamSave()">保存</button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div style="width: 15%;"> |
| | | <div class="operator-item" style="height: auto;width: 100%;"> |
| | | <span class="select-title">配置参数</span> |
| | | <div class="select-container" style="height: auto;padding: 30px 10px 10px 10px;"> |
| | | <div>运行速度:<span id="runSpeedText"></span></div> |
| | | <div>充电阈值:<span id="chargeLineText"></span></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </fieldset> |
| | | </div> |
| | |
| | | console.log(shuttleNo) |
| | | http.get(baseUrl+ "/shuttle/sensor/detl/"+shuttleNo, null, function (res) { |
| | | $('#shuttleNo1').val(res.data.shuttleNo); |
| | | // getColor(res.data.liftErr,'#liftErr'); |
| | | // getColor(res.data.inFetchErr,'#inFetchErr'); |
| | | // getColor(res.data.outFetchErr,'#outFetchErr'); |
| | | // getColor(res.data.antiErr,'#antiErr'); |
| | | // getColor(res.data.liftSwitchErr,'#liftSwitchErr'); |
| | | // getColor(res.data.trackErr,'#trackErr'); |
| | | // getColor(res.data.timeoutErr,'#timeoutErr'); |
| | | // getColor(res.data.connectErr,'#connectErr'); |
| | | // getColor(res.data.emergencyErr,'#emergencyErr'); |
| | | // getColor(res.data.taskTypeErr,'#taskTypeErr'); |
| | | // getColor(res.data.taskNoErr,'#taskNoErr'); |
| | | // getColor(res.data.newTaskErr,'#newTaskErr'); |
| | | // getColor(res.data.errTaskErr,'#errTaskErr'); |
| | | // getColor(res.data.stopErr,'#stopErr'); |
| | | // getColor(res.data.offlineTaskErr,'#offlineTaskErr'); |
| | | // getColor(res.data.startTaskErr,'#startTaskErr'); |
| | | // getColor(res.data.voltageTaskErr,'#voltageTaskErr'); |
| | | // getColor(res.data.devpErr,'#devpErr'); |
| | | // getColor(res.data.online,'#online'); |
| | | // getColor(res.data.notOnTrack,'#notOnTrack'); |
| | | // getColor(res.data.lowVoltage,'#lowVoltage'); |
| | | // getColor(res.data.electricityLoss,'#electricityLoss'); |
| | | // getColor(res.data.forcedTravel,'#forcedTravel'); |
| | | // getColor(res.data.demoMode,'#demoMode'); |
| | | // getColor(res.data.brushConnect,'#brushConnect'); |
| | | // getColor(res.data.taskManualForbid,'#taskManualForbid'); |
| | | // getColor(res.data.onlineManualForbid,'#onlineManualForbid'); |
| | | // getColor(res.data.devpEmergency,'#devpEmergency'); |
| | | // getColor(res.data.taskInterrupt,'#taskInterrupt'); |
| | | // getColor(res.data.taskClear,'#taskClear'); |
| | | // getColor(res.data.taskConfirmTimeout,'#taskConfirmTimeout'); |
| | | // getColor(res.data.taskWithCharge,'#taskWithCharge'); |
| | | getColor(res.data.pakInTask,'#pakInTask'); |
| | | getColor(res.data.pakOutTask,'#pakOutTask'); |
| | | getColor(res.data.pakMoveTask,'#pakMoveTask'); |
| | |
| | | getColor(res.data.goOHpAvoidFinish,'#goOHpAvoidFinish'); |
| | | getColor(res.data.goHpAvoidErr,'#goHpAvoidErr'); |
| | | getColor(res.data.goOHpAvoidErr,'#goOHpAvoidErr'); |
| | | // getColor(res.data.autoMode,'#autoMode'); |
| | | // getColor(res.data.voltageLow,'#voltageLow'); |
| | | }) |
| | | }, |
| | | end: function () { |
| | |
| | | $(e).attr("style", "color: #00FF00;"); |
| | | } |
| | | } |
| | | |
| | | // $(document).on('click ','.mode-btn', function () { |
| | | // let shuttleNo = Number($(this).parent().attr("data-shuttleNo")); |
| | | // layer.confirm("改变" + shuttleNo + ' 号穿梭车在线状态吗?', function(){ |
| | | // var index = layer.load(1, { |
| | | // shade: [0.1,'#fff'] |
| | | // }); |
| | | // $.ajax({ |
| | | // url: baseUrl+ "/shuttle/mode/switch", |
| | | // headers: {'token': localStorage.getItem('token')}, |
| | | // data: { |
| | | // shuttleNo: Number(shuttleNo), |
| | | // password: 'root' |
| | | // }, |
| | | // method: 'POST', |
| | | // success: function (res) { |
| | | // layer.close(index); |
| | | // if (res.code === 200){ |
| | | // layer.msg(res.msg, {icon: 1}); |
| | | // } else if (res.code === 403){ |
| | | // window.location.href = baseUrl+"/login"; |
| | | // } else { |
| | | // layer.msg(res.msg, {icon: 2}); |
| | | // } |
| | | // } |
| | | // }); |
| | | // }); |
| | | // }) |
| | | |
| | | |
| | | |
| | | $(document).on('click ','#save', function () { |
| | | http.post(baseUrl+ "/shuttle/detl/update", { |
| | |
| | | //渲染四向穿梭车数据维护和设备信息html |
| | | let shuttleCommandLogBox = '<div class="shuttle-command-item" data-shuttleNo="' + table[i - 1].shuttleNo + '">\n' + |
| | | '<label>' + table[i - 1].shuttleNo + '#</label>\n' + |
| | | '<button class="demoBtn pos-btn">数据维护</button>\n' + |
| | | '<button class="demoBtn mode-btn" id="mode-' + table[i - 1].shuttleNo + '">设备信息</button>\n' + |
| | | // '<button class="demoBtn pos-btn">数据维护</button>\n' + |
| | | // '<button class="demoBtn mode-btn" id="mode-' + table[i - 1].shuttleNo + '">设备信息</button>\n' + |
| | | '</div>' |
| | | $("#commandLogId").append(shuttleCommandLogBox); |
| | | } |
| | |
| | | // $("#mode-"+table[i-1].shuttleNo).html(table[i-1].statusVal===0?'联机':'脱机'); |
| | | let tr = tableEl.find("tr").eq(i); |
| | | setVal(tr.children("td").eq(0), table[i-1].shuttleNo); |
| | | setVal(tr.children("td").eq(1), table[i-1].status); |
| | | setVal(tr.children("td").eq(1), table[i-1].status$); |
| | | setVal(tr.children("td").eq(2), table[i-1].busyStatus); |
| | | setVal(tr.children("td").eq(3), table[i-1].currentCode); |
| | | setVal(tr.children("td").eq(4), table[i-1].batteryPower); |
| | | setVal(tr.children("td").eq(5), table[i-1].batteryTemp); |
| | | setVal(tr.children("td").eq(6), table[i-1].errorCode$); |
| | | setVal(tr.children("td").eq(7), table[i-1].plcOutputStatusIO); |
| | | setVal(tr.children("td").eq(8), table[i-1].statusErrorCode); |
| | | setVal(tr.children("td").eq(9), table[i-1].plcInputStatus); |
| | | setVal(tr.children("td").eq(10), table[i-1].currentOrBeforeCode); |
| | | setVal(tr.children("td").eq(11), table[i-1].codeOffsetX); |
| | | setVal(tr.children("td").eq(12), table[i-1].codeOffsetY); |
| | | setVal(tr.children("td").eq(13), table[i-1].currentVoltage); |
| | | setVal(tr.children("td").eq(14), table[i-1].currentAnalogValue); |
| | | setVal(tr.children("td").eq(6), table[i-1].errorCode); |
| | | setVal(tr.children("td").eq(7), table[i-1].plcOutputLift$);//顶升位 |
| | | setVal(tr.children("td").eq(8), table[i-1].plcOutputTransfer$);//换向位 |
| | | setVal(tr.children("td").eq(9), table[i-1].plcOutputBrake$);//抱闸位 |
| | | setVal(tr.children("td").eq(10), table[i-1].plcOutputCharge$);//充电位 |
| | | setVal(tr.children("td").eq(11), table[i-1].statusErrorCode); |
| | | setVal(tr.children("td").eq(12), table[i-1].plcInputStatus); |
| | | setVal(tr.children("td").eq(13), table[i-1].currentOrBeforeCode); |
| | | setVal(tr.children("td").eq(14), table[i-1].codeOffsetX); |
| | | setVal(tr.children("td").eq(15), table[i-1].codeOffsetY); |
| | | setVal(tr.children("td").eq(16), table[i-1].currentVoltage$); |
| | | setVal(tr.children("td").eq(17), table[i-1].currentAnalogValue); |
| | | } |
| | | } else if (res.code === 403){ |
| | | window.location.href = baseUrl+"/login"; |
| | |
| | | setVal(tr.children("td").eq(7), table[i-1].currentLiftServoLoad); |
| | | setVal(tr.children("td").eq(8), table[i-1].currentMoveServoLoad); |
| | | setVal(tr.children("td").eq(9), table[i-1].pakMk); |
| | | setVal(tr.children("td").eq(10), table[i-1].locNo); |
| | | setVal(tr.children("td").eq(11), table[i-1].lev); |
| | | |
| | | if (table[i-1].shuttleNo == parseInt($('input[name="shuttleSelect"]:checked').val())) { |
| | | $("#runSpeedText").text(table[i-1].runSpeed) |
| | | $("#chargeLineText").text(table[i-1].chargeLine + "%") |
| | | } |
| | | } |
| | | } else if (res.code === 403){ |
| | | window.location.href = baseUrl+"/login"; |
| | |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " <td></td>\n" + |
| | | " </tr>\n"; |
| | | } |
| | | $('#shuttle-state-table tbody').after(html); |
| | |
| | | shuttleOutputDom.scrollTop = shuttleOutputDom.scrollHeight; |
| | | } |
| | | |
| | | //四向穿梭车配置参数保存 |
| | | function shuttleParamSave() { |
| | | $.ajax({ |
| | | url: baseUrl+ "/shuttle/runSpeed/" + $('input[name="shuttleSelect"]:checked').val(), |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | method: 'POST', |
| | | data: { |
| | | runSpeed: $("#runSpeed").val(), |
| | | chargeLine: $("#chargeLine").val(), |
| | | }, |
| | | success: function (res) { |
| | | if (res.code === 200){ |
| | | layer.msg("配置已保存", {icon: 1,}); |
| | | } else if (res.code === 403){ |
| | | window.location.href = baseUrl+"/login"; |
| | | } else { |
| | | console.log(res.msg); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | </script> |