添加用网络继电器控制电磁阀的功能

This commit is contained in:
cdeyw
2025-01-17 17:57:35 +08:00
parent ee49e7b6d7
commit 910b832ba9

62
EMV.py Normal file
View File

@ -0,0 +1,62 @@
import socket
import binascii
# 网络继电器的 IP 和端口
HOST = '192.168.20.18'
PORT = 50000
valve_commands = {
1: {
'open': '00000000000601050000FF00',
'close': '000000000006010500000000',
},
2: {
'open': '00000000000601050001FF00',
'close': '000000000006010500010000',
},
3: {
'open': '00000000000601050002FF00',
'close': '000000000006010500020000',
}
}
# 将十六进制字符串转换为字节数据并发送
def send_command(command):
byte_data = binascii.unhexlify(command)
# 创建套接字并连接到继电器
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
sock.connect((HOST, PORT))
sock.send(byte_data)
response = sock.recv(1024)
return response
# 控制电磁阀打开
def open(grasp, throw, shake):
if grasp:
print("打开电磁阀 1")#抓取
send_command(valve_commands[1]['open'])
if throw:
print("打开电磁阀 2")#扔袋
send_command(valve_commands[2]['open'])
if shake:
print("打开电磁阀 3")#震动
send_command(valve_commands[3]['open'])
# 控制电磁阀关闭
def close(grasp, throw, shake ):
if grasp:
print("关闭电磁阀 1")
send_command(valve_commands[1]['close'])
if throw:
print("关闭电磁阀 2")
send_command(valve_commands[2]['close'])
if shake:
print("关闭电磁阀 3")
send_command(valve_commands[3]['close'])
close(True,True,True)#参数传True和False