Commit 7be11596 authored by Ivan Tyagov's avatar Ivan Tyagov

Start and stop conveyor.

parent d254265e
...@@ -18,18 +18,33 @@ def nothing(x): ...@@ -18,18 +18,33 @@ def nothing(x):
# any operation # any operation
pass pass
def sendModbusCommand(): def setConveyorState(state):
""" """
XXX: Pure example. Send to modbus server command to start (state 1)
or stop (state 0) conveyor.
"""
client = ModbusClient(OSIE_PLC_ADDRESS, port=OSIE_PLC_PORT)
client.connect()
client.write_coils(0, [state], unit=UNIT)
client.close()
def openAndCloseAirValve(seconds=0.05):
"""
Send to modbus server command to open and close the air valve for
a specified amount of time in seconds.
""" """
client = ModbusClient(OSIE_PLC_ADDRESS, port=OSIE_PLC_PORT) client = ModbusClient(OSIE_PLC_ADDRESS, port=OSIE_PLC_PORT)
client.connect() client.connect()
#rr = client.read_coils(1, 1, unit=UNIT) #rr = client.read_coils(1, 1, unit=UNIT)
client.write_coils(1, [True], unit=UNIT) client.write_coils(1, [True], unit=UNIT)
sleep(0.05) sleep(seconds)
client.write_coils(1, [False], unit=UNIT) client.write_coils(1, [False], unit=UNIT)
client.close() client.close()
# start conveyor
setConveyorState(1)
cap = cv2.VideoCapture(1) cap = cv2.VideoCapture(1)
cv2.namedWindow("Trackbars") cv2.namedWindow("Trackbars")
cv2.createTrackbar("L-H", "Trackbars", 0, 180, nothing) cv2.createTrackbar("L-H", "Trackbars", 0, 180, nothing)
...@@ -78,15 +93,15 @@ while True: ...@@ -78,15 +93,15 @@ while True:
if len(approx) == 3: if len(approx) == 3:
cv2.putText(frame, "Triangle", (x, y), font, 1, (0, 0, 0)) cv2.putText(frame, "Triangle", (x, y), font, 1, (0, 0, 0))
sendModbusCommand() openAndCloseAirValve()
elif len(approx) == 4: elif len(approx) == 4:
cv2.putText(frame, "Rectangle", (x, y), font, 1, (0, 0, 0)) cv2.putText(frame, "Rectangle", (x, y), font, 1, (0, 0, 0))
sendModbusCommand() openAndCloseAirValve()
elif 10 < len(approx) < 20: elif 10 < len(approx) < 20:
cv2.putText(frame, "Circle-fire!", (x, y), font, 1, (0, 0, 0)) cv2.putText(frame, "Circle-fire!", (x, y), font, 1, (0, 0, 0))
sendModbusCommand() openAndCloseAirValve()
cv2.imshow("Frame", frame) cv2.imshow("Frame", frame)
cv2.imshow("Mask", mask) cv2.imshow("Mask", mask)
...@@ -97,3 +112,8 @@ while True: ...@@ -97,3 +112,8 @@ while True:
cap.release() cap.release()
cv2.destroyAllWindows() cv2.destroyAllWindows()
# stop conveyor
setConveyorState(0)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment