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

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.0.tar.gz (5.3 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.0-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file mcprotocol_udp-0.1.0.tar.gz.

File metadata

  • Download URL: mcprotocol_udp-0.1.0.tar.gz
  • Upload date:
  • Size: 5.3 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.0.tar.gz
Algorithm Hash digest
SHA256 9babb51813a9677ed3eebd175855631a0d857127fd785ec79732b06013e81771
MD5 a1ce5ef9c41788351dfbac38c0990af4
BLAKE2b-256 87c77f0860e3303eb5e58c9d741540d20a53ae98b14d7bfcbd3a1340befd999e

See more details on using hashes here.

File details

Details for the file mcprotocol_udp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mcprotocol_udp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.3 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 800da17251d90973f7bf71e00225d17871b7d539387408ad5a7c177afb654dcf
MD5 12b9d02dc44cc024be2f3a701833588b
BLAKE2b-256 ae37de42e6bc4bf2e3277e54141a435af188be249ea4dfad7dfe1324e50e34e6

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