Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcprotocol_udp-0.1.2.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcprotocol_udp-0.1.2-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

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

Hashes for mcprotocol_udp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 7b02e5b76bed2f7dfb756c3f314750419f69f86b9767206cdb027d8a327cfb67
MD5 faf3f2f5f17d98cde51a6debbb7ed27f
BLAKE2b-256 6922aee8a3b8ff0e362b20133ff2b711c9dcf37d44bc5a4852eda233cd0f2df2

See more details on using hashes here.

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

Hashes for mcprotocol_udp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0f0b77501a6af7bfb6d3391b52eea8bb6c42ddbb9f07368dc6eb2aef3eca3bae
MD5 71368cea979ea081f188ad65cc1c8861
BLAKE2b-256 15387612bd0d29db1b7f7db0a0b8e2acb12e1142242ff78b4487e27a9b4c42f4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page