キーエンス KV5000
KV-LE21Vとラズベリーパイ イーサネット上位通信 |
#KV5000上位リンク PYTHON |
import socket |
class MySocket: |
def __init__(self, sock=None): |
print('init') |
if sock is None: |
self.sock = socket.socket( |
socket.AF_INET, socket.SOCK_STREAM) |
else: |
self.sock = sock |
def connect(self, host, port): |
print('connect') |
try: |
self.sock.connect((host, port)) |
return 0 |
except socket.error: |
print('ソケットエラーです') |
return -1 |
def mysend(self, msg): |
print('mysend') |
self.sock.send(msg.encode('utf-8')) |
def myreceive(self): |
print('myreceive') data=[] |
data=(self.sock.recv(1024)) |
# print(data) |
return data |
#----------------------------------------------------- |
def main(): |
host='192.168.1.4' |
port=8501 |
myapp = MySocket() |
ret=myapp.connect(host,port) |
#1ワードの読み出し 16ビット符号有り |
if ret==0: |
cmd='RDS ' |
myapp.mysend(cmd+'DM00000.S 4'+'\r') |
ret=[] |
count=4 |
ret=myapp.myreceive().decode('utf-8') |
# print(ret) |
datanum=[] |
anser=ret[0:2] |
if anser!='E1': |
for i in range(0,count): |
start=7*i |
end=7*i+6 |
data=(int(ret[start:end],10)) |
if data>=32767: |
data=data-65536 |
datanum.append(data) |
print(str(datanum[i])) |
#1ワードの読み出し 16ビット符号無し |
# myapp.connect(host,port) |
cmd='RDS ' |
myapp.mysend(cmd+'DM0000.U 4'+'\r') |
count=4 ret=[] |
ret=myapp.myreceive().decode('utf-8') |
# print(ret) |
datanum=[] |
anser=ret[0:2] |
if anser!='E1': |
for i in range(0,count): |
start=6*i |
end=6*i+5 |
data=(int(ret[start:end],10)) |
datanum.append(data) |
print(str(datanum[i])) |
#1ワードの読み出し 32ビット符号無し |
# myapp.connect(host,port) |
cmd='RDS ' |
myapp.mysend(cmd+'D0000.D 2'+'\r\n') |
count=2 ret=[] |
ret=myapp.myreceive().decode('utf-8') |
datanum=[] |
anser=ret[0:2] |
if anser!='E1': |
for i in range(0,count): |
start=11*i |
end=11*i+10 |
data=(int(ret[start:end],10)) |
datanum.append(data) |
print(data) |
if __name__ == '__main__': |
main() |