三菱PLC 通讯 python代码

前几天,需要使用到激光传感器,需要PLC来控制。就学习了一下PC与PLC通讯。

学的不深,可能有很多问题,欢迎指正。

PLC那一端是电气的同事帮忙弄的,使用的是MC协议。

一开始,我是用的是二进制方式(这个方式我用不了,应该是PLC那一端设置了ASCII方式吧...不太清楚):

import socket
import re

PORT = 7001

def read_register(host, start_digit, digit_num=1, port=PORT, dic=True):
    '''
    Example:
        read D400 single word: read_register('192.168.100.2', 400)
    '''
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client.connect((host, port))

    str1= '500000ffff03000c00100001040000'\
            + reverse_per_two_char('{:0=6x}'.format(start_digit))\
            + 'a8' + reverse_per_two_char('{:0=6x}'.format(digit_num))
    msg = bytes.fromhex(str1)  # 转成字节
    client.send(msg)
    res = client.recv(1024).hex()
    if dic:
    # 十六进制转十进制
        return
  • 7
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值