MITSUBISHI MC-Protocol Frame3E UDP/IP communication library
Project description
MITSUBISHI MC-Protocol Frame3E UDP/IP communication library
三菱 シーケンサの通信プロトコル MCプロトコル を使ってPythonからデバイスの値を読み書きする
Install
pip install mcprotocol-udp
Constructor
MCProtcol3E(host, port, timeout)
Functions
read(memAddres, size, unitOfBit)
Device Area Read
memAddress = X, Y, M, L, F, V, B, D, W, TS, TC, TN, SS, SC, SN, CS, CC, CN, SB, SW, S ,DX, DY, SM, SD
size = 読出し点数
unionOfBit = True = ビット単位 / False = ワード単位
Return: bytes()
write(memAddres, data, bitSize)
Memory Area Write
memAddress = X, Y, M, L, F, V, B, D, W, TS, TC, TN, SS, SC, SN, CS, CC, CN, SB, SW, S ,DX, DY, SM, SD
data = bytes()
bitSize = ビット数(ビット単位で書込みするときのみ指定)
Return: responce
RandomRead(worddevice, dworddevice)
Memory Area Random Read ワード単位、ダブルワード単位の不連続デバイスの読出し
memAddress = X, Y, M, L, F, V, B, D, W, TN, SN, CN, SB, SW, S ,DX, DY, SM, SD
worddevice = ワード読出しアドレス(カンマ区切り)
dworddvice = ダブルワード読出しアドレス(カンマ区切り)
Return: bytes()
MonitorSet(worddevice, dworddevice)
Monitor registration モニタするデバイスを登録
memAddress = X, Y, M, L, F, V, B, D, W, TN, SN, CN, SB, SW, S ,DX, DY, SM, SD
worddevice = ワード読出しアドレス(カンマ区切り)
dworddvice = ダブルワード読出しアドレス(カンマ区切り)
Return: responce
MonitorGet()
Monitor 登録したデバイスの値を読み出す
memAddress = X, Y, M, L, F, V, B, D, W, TN, SN, CN, SB, SW, S ,DX, DY, SM, SD
worddevice = ワード読出しアドレス(カンマ区切り)
dworddvice = ダブルワード読出しアドレス(カンマ区切り)
Return: bytes()
toBin(data)
data = mcp.read('M0', 16, True)
print(mcp.toBin(data)) # convert bin
unionOfBitをビット単位で指定して読み出した値を文字列に変換
(M0) 1000010011000010 (M15)
WordToBin(data)
data = mcp.read('D0', 1, False)
print(mcp.WordToBin(data)) # convert word to bin
unionOfBitをワード単位で指定して読み出した値を文字列に変換
(15ビット目) 0100001100100001 (0ビット目)
toInt16(data)
読み出した値をInt16型のlistに変換
toInt32(data)
読み出した値をInt32型のlistに変換
toInt64(data)
読み出した値をInt64型のlistに変換
toUInt16(data)
読み出した値をUInt16型のlistに変換
toUInt32(data)
読み出した値をUInt32型のlistに変換
toUInt64(data)
読み出した値をUInt64型のlistに変換
toFloat(data)
読み出した値を単精度浮動小数点型のlistに変換
Convert to Float data
toDouble(data)
読み出した値を倍精度浮動小数点型のlistに変換
toString(data)
読み出した値を文字列に変換
Example
from mcprotocol import MCProtcol3E
import struct
'''
# MCProtocolの送受信ログが必要な場合はコメントを外してください
import logging
logging.basicConfig(
filename="mcp.log",
level=logging.DEBUG,
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s"
)
'''
try:
# example
# set IPAddress,Port
mcp = MCProtcol3E('192.168.250.41', 4999)
# bits
#data = mcp.read('M8000', 8, True)
data = mcp.read('M0', 16, True)
print(data)
print(mcp.toBin(data)) # convert bin
rcv = mcp.write('M100', data, 8)
print(rcv)
data = mcp.read('D0', 1, False)
print(mcp.WordToBin(data)) # convert word to bin
# numeric
data = struct.pack('hhh', 123, 456, 789)
rcv = mcp.write('D20', data)
print(rcv)
# float
data = struct.pack('f', 1.23)
rcv = mcp.write('D10020', data)
print(rcv)
# bits
data = [0x11, 0x11, 0x10]
rcv = mcp.write('M8100', data, 5)
# RandomRead
rcv = mcp.RandomRead('D0,TN0,M100,X20', 'D1500,Y160,M1111')
print(rcv)
print(mcp.toInt16(rcv[:8]))
print(mcp.toInt32(rcv[8:]))
# Monitor
rcv = mcp.MonitorSet('D50, D55', 'D60, D64')
print(rcv)
rcv = mcp.MonitorGet()
print(mcp.toInt16(rcv[:4]))
print(mcp.toInt32(rcv[4:]))
except Exception as e:
print(e)
説明サイト
https://osdes.com/python/plccomm/mcprotocol.html
Qiita記事
https://qiita.com/OkitaSystemDesign/items/97b7d27c0d53668baafc
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcprotocol_udp-0.1.2.tar.gz.
File metadata
- Download URL: mcprotocol_udp-0.1.2.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b02e5b76bed2f7dfb756c3f314750419f69f86b9767206cdb027d8a327cfb67
|
|
| MD5 |
faf3f2f5f17d98cde51a6debbb7ed27f
|
|
| BLAKE2b-256 |
6922aee8a3b8ff0e362b20133ff2b711c9dcf37d44bc5a4852eda233cd0f2df2
|
File details
Details for the file mcprotocol_udp-0.1.2-py3-none-any.whl.
File metadata
- Download URL: mcprotocol_udp-0.1.2-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f0b77501a6af7bfb6d3391b52eea8bb6c42ddbb9f07368dc6eb2aef3eca3bae
|
|
| MD5 |
71368cea979ea081f188ad65cc1c8861
|
|
| BLAKE2b-256 |
15387612bd0d29db1b7f7db0a0b8e2acb12e1142242ff78b4487e27a9b4c42f4
|