Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TCP/IP-发送命令_Python_Tcp - Fatal编程技术网

Python TCP/IP-发送命令

Python TCP/IP-发送命令,python,tcp,Python,Tcp,我有一个望远镜,它由西门子PLC管理。这台望远镜是遥控的。我有一组可以通过TCP/IP发送执行的命令。此命令采用ASCII格式。下面是脚本的简单示例: import socket TCP_IP = '' TCP_PORT = s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((TCP_IP, TCP_PORT)) s.send('GLLG 0\r\n') s.send('DOSO 0\r\n') data = s

我有一个望远镜,它由西门子PLC管理。这台望远镜是遥控的。我有一组可以通过TCP/IP发送执行的命令。此命令采用ASCII格式。下面是脚本的简单示例:

import socket


TCP_IP = ''
TCP_PORT = 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
s.send('GLLG 0\r\n')
s.send('DOSO 0\r\n')
data = s.recv(1024)
print data
s.close()
我发出两个命令。第一个用于登录,第二个用于打开圆顶。但我有两个半圆顶。当我发送这个打开圆顶的命令时,它只打开圆顶的一半

但在半圆顶打开之前需要一些时间,我必须等待发送下一个命令来打开整个圆顶。我的问题是

可以按照说明操作吗

何时使一个命令自动发送另一个命令


等待执行一个命令,然后发送下一个命令?

如果PLC将发送某种类型的响应,确认圆顶打开完成,请阅读该响应,然后发送下一个命令


另外,请确保将所有字符串作为二进制发送,除非PLC可以处理unicode。

如果在打开前半部分之前为后半部分发送打开请求,会发生什么情况?您发送的命令在完成后是否会收到回复?如果您对协议有控制权,如果协议丢失,您可能会考虑添加它。这种请求-响应在许多网络协议中都很常见。当我发送三个命令-login-doso-doso执行第一个命令和第二个命令时,什么都没有。第三个不是。但是当半圆顶打开并且再次发送doso命令时,第二个半圆顶打开,我得到replay-例如,逻辑1,我发送命令登录doso doso,我得到1 1…但是只执行前两个。如果每个命令都得到回复,那么在发送下一个命令之前,您应该等待它。