Data Source: Mitsubishi

The MC Data Source connects directly to the Mitsubishi Q/L Series PLCs using the MELSEC Communications Protocol (MC) to read and write PLC device memory locations.

This driver has been developed specifically for model L26CPU. While it should work for other models, it is not guarantee that address ranges will work for another model.

Create a new Data Source

A Data Source can be defined in Sym3, right click on Project Explorer > Data Sources then select ‘MC’ from the ‘New Source’ menu.

Note: Browsing is not supported for MC Data Sources.

Fill in the IP address or hostname of the PLC in the Hostname field along with the port number that has been created on the PLC for MC service. The port number is required and there is no default. The format is $host:$port.

Examples:

192.168.3.39:4500
mitsubishi1:4500

The ‘Update Rate’ is the value in milliseconds between two commands (READ or WRITE). This driver will READ and WRITE alternatively. The image below shows how the update rate is working.

Do Not Write Input Tags

Do Not Write Input Tags is an Integrator-only flag on the Mitsubishi data source that defaults to off.

When enabled, that data source will only write the output tags to the PLC or emulator that it is connected to.

Note: Reads and writes for bit devices (like X and Y) are always aligned to 16 bit alignment. Take for example, the X device:

If tags X0 through XE are output tags, and XF is an input tag, XF will be written even if Do Not Write Input Tags is enabled. Same goes for X10 through X1F, X20 through X2F, and so on.

An address that is associated with multiple tags will only be considered an input tag if all the tags are input tags. Consider an example where a project has three tags pointing at D0:

D0 will always be written, as Tag3 is an output tag.

Examples

Example 1

A project with 200 tags using the D register. D0 through D99 are output tags, and D100 through D199 are input tags.

Addresses IO Direction
D0,D1,D2,…,D99 Output
D99,D100,…,D199 Input

If Do Not Write Input Tags is enabled, there will be one write command for the D register, writing D0 through D99, for every write cycle. No additional write commands for D registers 100 through 199 shall be emitted, as they are input tags. If Do Not Write Input Tags is disabled, there will be one write command for the D register, writing D0 through D199, for every write cycle.

Do Not Write Input Tags Disabled
Command Range
Read D0 to D199
Write D0 to D199
Do Not Write Input Tags Enabled
Command Range
Read D0 to D199
Write D0 to D99

Example 2

A project with 200 tags using the D register in the following arrangement: D0-D49:output,D50-D99:input,D100-D149:output,D150-D199:input.

Addresses IO Direction
D0,D1,D2,…,D49 Output
D50,D51,…,D99 Input
D100,D101,…,D149 Output
D150,D151,…,D199 Input

If Do Not Write Input Tags is enabled, there will be two write commands per write cycle for the D register. The first writing D0-D49, and the second writing D100-D149. If Do Not Write Input Tags is disabled, there will be one write command for the D register, writing D0 through D199, for every write cycle.

Do Not Write Input Tags Disabled
Command Range
Read D0 to D199
Write D0 to D199
Do Not Write Input Tags Enabled
Command Range
Read D0 to D199
Write D0 to D49
Write D100 to D149

Example 3

A project with 200 tags using D register in the following arrangement: D(Even numbers):output,D(Odd numbers):input.

Address IO Direction
D0 Output
D1 Input
D2 Output
D3 Input
D198 Output
D199 Input

If Do Not Write Input Tags is enabled, there will be 100 write commands per write cycle for the D register. The first writing D0, and the second writing D2 and so on until D198. This will significantly reduce performance. If Do Not Write Input Tags is disabled, there will be one write command for the D register, writing D0 through D199, for every write cycle.

Do Not Write Input Tags Disabled
Command Range
Read D0 to D199
Write D0 to D199
Do Not Write Input Tags Enabled
Command Range
Read D0 to D199
Write D0 only
Write D2 only
Write D4 only
Write D198 only

Example 4

Addresses IO Direction
D5000,…..,D5005 Input
D5100,…..,D5105 Input
D6000,…..,D6005 Output
D6100,…..,D6105 Output
D10000,….,D10005 Input
D10100,….,D10105 Input
D11000,….,D11005 Output
D11100,….,D11105 Output
Do Not Write Input Tags Disabled
Command Range
Read D5000 to D11105
Write D5000 to D11105
Do Not Write Input Tags Enabled
Command Range
Read D5000 to D11105
Write D6000 to D9999
Write D11000 to D11105

Summary

So long as the input tags are all contiguous, the time between MC commands will be unchanged regardless of whether or not Do Not Write Input Tags is enabled. But with discontiguous tags, the number of write commands will be increased when the box is checked.

Note: When there is no input tag mapped for the device, Sym3 will write everything in one command from minimum to maximum range.

Frame

The ‘Frame’ is the protocol you wish to use when communicating the the PLC device. We support 3E and 4E Frame message formats.

Example of configuration:

Adding a MC Tag

Click on the Property Editor option in the Ribbon bar to open the Property Editor Panel.

Create Tags in the Tag Manager Window using the + button.

Enter a Name for the Tag in Sym3 and the Data Source for the Tag.

Entering a Data Type for tags is optional. The default will be Boolean for bit devices and Word for word devices. (refer to table below)

The Tag Address is the combination of a 1 to 3 character alphabetic Device Code mnemonic and the numeric address of the Device Point.

Please note that for this Datasource, there’s no ‘Update Rate’ and ‘Simulate Tag’ properties.

By Mitsubishi’s convention, numerical device point addresses are specified in either decimal or hexadecimal radix, specified individually by device with no particular pattern as to which devices use which radix.

Example:

  • X10 – Device X, device point sixteen.
  • M10 – Device M, device point ten.
  • XA – Device X, device point ten.

The table below lists the device codes, type and address radix for the devices supported by the MC data source.

Device Types and Data Conversions

Sym3 supported data types:

  • Default
  • sBoolean
  • Char
  • Byte
  • Short
  • Word
  • Long
  • DWord

Conversions

The Mitsubishi Q/L Series PLCs devices are either of 2 fundamental data types, bit or 16-bit word.

When code in the PLC generates 32 or 64 bit values in word device memory, occupying 2 or 4 device points respectively, the values are ordered in little-endian format and addressed accordingly with the lowest device point address being the least significant 16 bits of the larger type.

There is no ability to address or atomically write a single bit to a word device, therefore bit addressing for word devices is not supported.

When converting between the PLC types and the Sym3 types the following rules apply.

Bit Devices

  • When reading tag values for any bit device mapped to any of the Sym3 integer types the value of the bit device will be represented in bit 0 of the integer with the remaining bits having the value of zero.
  • When setting tags, for any integer Sym3 type, the bit device will be set with the value from bit 0 of the integer and all other bits ignored.

Word Devices

  • When reading or writing tag values for any word device mapped to a Sym3 Boolean type the data is read from or written to bit 0 of the addressed device point.
  • When reading or writing tag values for any word device mapped to a Sym3 Byte or Char type the data is read from or written to bits 0-7 of the addressed device point.
  • When reading or writing tag values for any word device mapped to any of the Sym3 integer types the usual rules apply for the promotion and demotion of integer types.
  • When reading or writing tag values for any word device mapped to any of the Sym3 32 or 64 bit integer types the address of the data is the lowest device point word address.