Control SMC Electric Actuators from Python

SMC produces a wide variety of Electric Actuators. These are typically controlled via SMC Gateway Units, providing access via several industrial protocols such as DeviceNet, EtherNet/IP and ProfiBus.

These protocols are typically accessed using industrial control software and devices such as PLCs. To control your SMC actuators directly from a Python program, you can skip the SMC Gateway, and directly access the actuator Controller using its native protocol.  You can reduce the expense of your installation by eliminating the SMC Gateway, and you can run your own Python software on the same industrial computer used to communicate with the SMC actuator Controllers.

SMC Actuator and Gateway Protocol

The underlying protocol spoken by the SMC Electric Actuator Controllers themselves (and also the associated SMC Gateways) is simply Modbus/RTU, over an RS-485 serial multi-drop network.

Using cpppo_positioner, you can directly access multiple SMC electric actuator controllers (without an SMC Gateway), and:

  • issue multiple positioning operations in progress simultaneously
  • monitor any positioning operation for completion
  • set and clear any actuator Controller outputs
  • monitor all actuator Controller status flags

The cpppo_positioner module allows control of the position of a set of actuators by initiating a connection to the RS-485 communication channel and issuing new position directives via each actuator’s controller. The current state is continuously polled via Modbus/RTU reads, and data updates and state changes are performed via Modbus/RTU writes.

Communication Limits and Hardware

The recommended hardware platform is the Lanner LEC-3013 industrial solid-state PC, which can be configured with up to 8 RS-485 ports, and communicate with up to 12 actuators per port (to minimize polling latency).  In addition, the SMC LEC-W2 "Controller setting kit" comes with a USB-RS485 cable which may be used to communicate with additional actuators.

A custom harness is available with the the custom SMC RJ45 plug to RS-485 serial wiring, and an Emergency Stop button.  One is required for each separate RS-485 connection (up to 12 actuators).

Therefore, as many as 100 SMC actuators could be controlled by a single cpppo_positioner installation running on a Lanner LEC-3013 A8 (w/8 RS-485 connections).  If low latency (time to detect status changes) is not required, controlling even more than 100 actuators may be possible.


Cpppo_positioner Non-exclusive Enterprise-wide Commercial License CAD$1,000
Cpppo_positioner annual support (incl. up to 4 hours of developer access) CAD$200
Lanner LEC-3013 A4 w/4 RS-485, 2 Ethernet
Intel Atom, 4GB RAM, 16GB CF, Debian 8 Linux
Includes Fedex Air (to North America, Europe)
Lanner RS-485 - SMC RJ45 w/ Emergency Stop CAD$250