python如何调用hslcommunication_C#读写PLC数据问题
展開全部
首先最簡單的方式就是通過32313133353236313431303231363533e59b9ee7ad9431333365666230mc協(xié)議, 用串口、以太網都可以。? PLC側不需要任何編程配置好端口就可以。? C#這邊? 就是用套接字創(chuàng)建客戶端,連接這個plc服務器就行,然后發(fā)送報文 指令讀取? 這些數據,然后將接收的數據 ,處理格式化打印就行了。直接三菱電機官網,內置以太網通訊手冊就可以了。里面有詳細講解? mc通訊協(xié)議的格式。 官方給的示例是用C/C++寫的
下面是用Python 寫的一段讀 D0-D4的代碼#!/usr/bin/env?python
#?-*-?coding:utf-8?-*-
#?Author:?nulige
#?三菱Q系列?mc協(xié)議測試代碼
#?日期:2018年4月27日
#?測試:
"""
#?以讀取D0-D4?數據(16位寄存器)指令為例
#?500000FF03FF000018000A04010000D*0000000005
#?三菱mc協(xié)議報文結構3E幀
#?副標題:
#?固定值:5000
#?網絡編號:00
#?可編程邏輯控制器編號:FF
#?請求目標模塊I/O號:03FF
#?請求目標模塊站號:00
#?請求數據、形影數據長:0018
#?監(jiān)視定時器:000A
#?批量讀取命令:0401
#?子命令:0000
#?軟元件類型:D*
#?首地址:000000
#?偏移量:0005
#?備注:指令介紹參考MElSEC通訊協(xié)議參考手冊
#?此格式下相應報文應該為:D000?00FF?03FF?00?0018?0000(這四位位結束正常響應)?后面數據位D0-D4?數據
"""
#?部分python?函數說明
#?msg.encode('utf-8')?以指定的格式對數據進行編碼
from?socket?import?*??????????????????????????????????????????????????#?打開socket?模塊
#?ip_port?=?('127.0.0.1',4099)??????????????????????????????????????#?設置服務器?IP?端口
ip_port?=?('192.168.3.39',4099)??????????????????????????????????????#?設置服務器?IP?端口
buffer_size?=?1024?????????????????????????????????????????????????????#?設置接受緩沖區(qū)大小
tcp_client?=?socket(AF_INET,?SOCK_STREAM)??????????????????????????????#?使用IPV4協(xié)議?,TCP連接
print('正在連接目標'+str(ip_port))
tcp_client.connect(ip_port)
SendMsg?=?('500000FF03FF000018000A04010000D*0000000005')???????#?讀取D0-D5指令
while?True:
print('D0-D5數據讀取使能?按Y回車讀取:')
key?=?input()
tcp_client.send(SendMsg.encode('utf-8'))??????????????????????????#?發(fā)送讀取命令
RecData?=?tcp_client.recv(buffer_size)?????????????????????????????#?收緩存為空則阻塞
print('接受到的報文:',?RecData.decode('utf-8'))????????????????#?打印收到的報文
RecData1?=?RecData[22:]????????????????????????????????????????????#?獲取數據報文
RecData1Len?=?len(RecData1)????????????????????????????????????????#?獲取數據報文長度
print('格式化輸出:')
i?=?0
j?=?0
while?i?
print('D'?+?str(j)?+?'?=?'?+?str(int(RecData1[i:(i?+?4)])))??#?輸出讀取到的數據
i?=?i?+?4
j?=?j?+?1
tcp_client.close()????????????????????????????????????????????????????#??連接關閉
總結
以上是生活随笔為你收集整理的python如何调用hslcommunication_C#读写PLC数据问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql command line c
- 下一篇: android 修改gps坐标,[原创]