第一次使用web控制实体硬件需要通过网页调用串口一段时间,最后选择使用python php jQuery html实现了。
第一部分:web首页界面 index.html
第1路
第2路
第3路
第4路
第5路
第6路
第7路
第8路
第9路
第10路
第11路
第12路
第13路
第14路
第15路
第16路
第17路
第18路
第19路
第20路
第21路
第22路
第23路
第24路
第25路
第26路
第27路
第28路
第29路
第30路
第31路
第32路
全路
第二部分 jdq.php
$_REQUEST[s]=($_REQUEST[s]=="true")?0:1;
$result=shell_exec("D:/Python/python.exe com.py $_REQUEST[lu] $_REQUEST[s]");
第三部分 COM.py
from sys import argv
mport serial
import string
import time
import binascii
import sys
import struct
import re
f,lu,s = argv
cm=[]
cm.append([[0xFE,0x05,0x00,0x00,0xFF,0x00,0x98,0x35],[0xFE,0x05,0x00,0x00,0x00,0x00,0xD9,0xC5]])
cm.append([[0xFE,0x05,0x00,0x01,0xFF,0x00,0xC9,0xF5],[0xFE,0x05,0x00,0x01,0x00,0x00,0x88,0x05]])
cm.append([[0xFE,0x05,0x00,0x02,0xFF,0x00,0x39,0xF5],[0xFE,0x05,0x00,0x02,0x00,0x00,0x78,0x05]])
cm.append([[0xFE,0x05,0x00,0x03,0xFF,0x00,0x68,0x35],[0xFE,0x05,0x00,0x03,0x00,0x00,0x29,0xC5]])
cm.append([[0xFE,0x05,0x00,0x04,0xFF,0x00,0xD9,0xF4],[0xFE,0x05,0x00,0x04,0x00,0x00,0x98,0x04]])
cm.append([[0xFE,0x05,0x00,0x05,0xFF,0x00,0x88,0x34],[0xFE,0x05,0x00,0x05,0x00,0x00,0xC9,0xC4]])
cm.append([[0xFE,0x05,0x00,0x06,0xFF,0x00,0x78,0x34],[0xFE,0x05,0x00,0x06,0x00,0x00,0x39,0xC4]])
cm.append([[0xFE,0x05,0x00,0x07,0xFF,0x00,0x29,0xF4],[0xFE,0x05,0x00,0x07,0x00,0x00,0x68,0x04]])
cm.append([[0xFE,0x05,0x00,0x08,0xFF,0x00,0x19,0xF7],[0xFE,0x05,0x00,0x08,0x00,0x00,0x58,0x07]])
cm.append([[0xFE,0x05,0x00,0x09,0xFF,0x00,0x48,0x37],[0xFE,0x05,0x00,0x09,0x00,0x00,0x09,0xC7]])
cm.append([[0xFE,0x05,0x00,0x0A,0xFF,0x00,0xB8,0x37],[0xFE,0x05,0x00,0x0A,0x00,0x00,0xF9,0xC7]])
cm.append([[0xFE,0x05,0x00,0x0B,0xFF,0x00,0xE9,0xF7],[0xFE,0x05,0x00,0x0B,0x00,0x00,0xA8,0x07]])
cm.append([[0xFE,0x05,0x00,0x0C,0xFF,0x00,0x58,0x36],[0xFE,0x05,0x00,0x0C,0x00,0x00,0x19,0xC6]])
cm.append([[0xFE,0x05,0x00,0x0D,0xFF,0x00,0x09,0xF6],[0xFE,0x05,0x00,0x0D,0x00,0x00,0x48,0x06]])
cm.append([[0xFE,0x05,0x00,0x0E,0xFF,0x00,0xF9,0xF6],[0xFE,0x05,0x00,0x0E,0x00,0x00,0xB8,0x06]])
cm.append([[0xFE,0x05,0x00,0x0F,0xFF,0x00,0xA8,0x36],[0xFE,0x05,0x00,0x0F,0x00,0x00,0xE9,0xC6]])
cm.append([[0xFE,0x05,0x00,0x10,0xFF,0x00,0x99,0xF0],[0xFE,0x05,0x00,0x10,0x00,0x00,0xD8,0x00]])
cm.append([[0xFE,0x05,0x00,0x11,0xFF,0x00,0xC8,0x30],[0xFE,0x05,0x00,0x11,0x00,0x00,0x89,0xC0]])
cm.append([[0xFE,0x05,0x00,0x12,0xFF,0x00,0x38,0x30],[0xFE,0x05,0x00,0x12,0x00,0x00,0x79,0xC0]])
cm.append([[0xFE,0x05,0x00,0x13,0xFF,0x00,0x69,0xF0],[0xFE,0x05,0x00,0x13,0x00,0x00,0x28,0x00]])
cm.append([[0xFE,0x05,0x00,0x14,0xFF,0x00,0xD8,0x31],[0xFE,0x05,0x00,0x14,0x00,0x00,0x99,0xC1]])
cm.append([[0xFE,0x05,0x00,0x15,0xFF,0x00,0x89,0xF1],[0xFE,0x05,0x00,0x15,0x00,0x00,0xC8,0x01]])
cm.append([[0xFE,0x05,0x00,0x16,0xFF,0x00,0x79,0xF1],[0xFE,0x05,0x00,0x16,0x00,0x00,0x38,0x01]])
cm.append([[0xFE,0x05,0x00,0x17,0xFF,0x00,0x28,0x31],[0xFE,0x05,0x00,0x17,0x00,0x00,0x69,0xC1]])
cm.append([[0xFE,0x05,0x00,0x18,0xFF,0x00,0x18,0x32],[0xFE,0x05,0x00,0x18,0x00,0x00,0x59,0xC2]])
cm.append([[0xFE,0x05,0x00,0x19,0xFF,0x00,0x49,0xF2],[0xFE,0x05,0x00,0x19,0x00,0x00,0x08,0x02]])
cm.append([[0xFE,0x05,0x00,0x1A,0xFF,0x00,0xB9,0xF2],[0xFE,0x05,0x00,0x1A,0x00,0x00,0xF8,0x02]])
cm.append([[0xFE,0x05,0x00,0x1B,0xFF,0x00,0xE8,0x32],[0xFE,0x05,0x00,0x1B,0x00,0x00,0xA9,0xC2]])
cm.append([[0xFE,0x05,0x00,0x1C,0xFF,0x00,0x59,0xF3],[0xFE,0x05,0x00,0x1C,0x00,0x00,0x18,0x03]])
cm.append([[0xFE,0x05,0x00,0x1D,0xFF,0x00,0x08,0x33],[0xFE,0x05,0x00,0x1D,0x00,0x00,0x49,0xC3]])
cm.append([[0xFE,0x05,0x00,0x1E,0xFF,0x00,0xF8,0x33],[0xFE,0x05,0x00,0x1E,0x00,0x00,0xB9,0xC3]])
cm.append([[0xFE,0x05,0x00,0x1F,0xFF,0x00,0xA9,0xF3],[0xFE,0x05,0x00,0x1F,0x00,0x00,0xE8,0x03]])
cm.append([[0xFE,0x0F,0x00,0x00,0x00,0x10,0x02,0xFF,0xFF,0xA6,0x64],[0xFE,0x0F,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0xA7,0xD4]])
#需要将硬件RTU格式命令(十六进制)如 FE 05 00 00 FF 00 98 35,转成字节码形式,即在前面加0x,变成数组形式[0xFE,0x05,0x00,0x00,0xFF,0x00,0x98,0x35]输送给硬件串口,以实现指令过程。
try:
ser = serial.Serial('COM3', 9600) #需要连接串口线后,通过在硬件管理里查看串口的名字(这里是COM3)。
except:
print('open serial failed.')
exit(1)
cmd_send=cm[int(lu)][int(s)]
s=ser.write(cmd_send)
print(cmd_send)
ser.close()