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

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcprotocol_udp-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 38e3a20b6a5be3cfff0ab75974b22803beec9dd20dee1d340011a233188fa0d5
MD5 ddca680f624f6bf67ef01157cc1acf19
BLAKE2b-256 8f6c0dd8e79d489a99822d90fc1a32d2558115c22ab1e0d18ed6f695cd422a46

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mcprotocol_udp-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 58f4d186c2feb0b77105b72657c507b8db0c6ebcc9516b0017220f935e62a8e9
MD5 59576f6a20a8586ea54de466ed5cc369
BLAKE2b-256 8a37bd789746caba04d36326e72e5a1a19cd4b6b3b5ee094faa5509c3c3300ba

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