Skip to main content

A library to communicate with Omron Sysmac Simulator

Project description

Omron Sysmac Simulator Driver

This project is a Python library that enables communication with the Sysmac Studio simulator using the NexSocket.dll installed with the Omron IDE. It can be used to exercise and unit test PLC projects in the simulator without the need to connect actual hardware. The main methods are similar to the APHYT Ethernet/IP project used for real Sysmac hardware on the network, so code can be reused to test both simulated and real systems. There are some limitations on simulated systems because the NexSocket.dll does not provide as much data as Ethernet/IP.

This code modifies and expands a GPL3 module released by Simumatik Digital Twin platform and the modifications:

  • Allow it to be used as a stand-alone Python interface to the Simulator
  • Variables can be assigned PLC data types in order to implicitly format the bytes during read and write operations
  • Can import a text file created by pasting the results of Sysmac Studio's "Export Global Variables" in order to define the data types of PLC variables automatically

Creating an Import File of Published Global Variables

Begin by exporting a formatted list of published global variables by navigating Sysmac Studio's menu structure to: Tools - Export Global Variables - CX-Designer

Export Global Variables Dialog

This should result in a dialog that alerts the user that the data has been copied to the clipboard

Pop Up From Export Global Variables Tool

Paste the results into a text file and save it in a location accessible to the Python code. The result should look something like this below:

Screen Cap of Global Variables Text File

The file "global_variables.txt", created using this process, is used in the example code below.

Example

The following code will connect to the running simulator

from sysmac_simulator import *
import time

sim_driver = SysmacSimulator()
sim_driver.connect()
sim_driver.populate_from_file('global_variables.txt')

var_name = "hmiPositionTarget"
for i in range(5):
    print(sim_driver.read_variable(var_name))
    time.sleep(1)
    sim_driver.write_variable(var_name, 12.34)
    print(sim_driver.read_variable(var_name))
    time.sleep(1)
    sim_driver.write_variable(var_name, 0.0)

sim_driver.disconnect()

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

omron_sysmac_simulator-0.1.3.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

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

omron_sysmac_simulator-0.1.3-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

Details for the file omron_sysmac_simulator-0.1.3.tar.gz.

File metadata

  • Download URL: omron_sysmac_simulator-0.1.3.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for omron_sysmac_simulator-0.1.3.tar.gz
Algorithm Hash digest
SHA256 32131a893f71f45d3b4100c244dc04c992b26e0dcbfdc4aeba64b169f02ff608
MD5 69172433109ecd4838a1b49ff0fb0003
BLAKE2b-256 4a823e281cc319f28e84bb57abe060d7631b63a8862c7c6e8c9649d49d425074

See more details on using hashes here.

File details

Details for the file omron_sysmac_simulator-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for omron_sysmac_simulator-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3c7df53d385378b174a7bf076f9c0180ecfc30cb730a44428728b6dfa9727e88
MD5 0edafebc3cd7cec7b02cf688db63621a
BLAKE2b-256 43935e6245c5c4cc5a3cc9d2c0fc8c3fa8ce67f1a56a049b48217715e01a986a

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