Difference between revisions of "Overview"

From SoftMC-Wiki
Jump to: navigation, search
m (User Communication)
 
(140 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Out-of-date}}
+
{{Languages|Overview}}
  
= Introducing the softMC =
+
== Introduction ==
  
The '''softMC''' multi-axis motion controller offers extensive programming capabilities for a variety of automation and robotic applications. softMC provides motion and robotics functionalities for both standard robot types such as Delta, PUMA and SCARA, and non-standard robotic kinematics, such as traverse and scissors. Customized software solutions can also be designed for customer‘s hardware.
 
  
softMC features Servotronix advanced control algorithms embedded in a qualified off-the-shelf industrial PC, for an open and modular machine control environment. Its powerful and realtime Linux-based programming language enables preemptive multitasking at user program level.
+
'''softMC''' multi-axis motion control firmware provides the features and performance required of today’s multi-axis controllers, and is designed for easy integration into motion control systems as well as simplicity of use.
 +
 
 +
softMC provides extensive programming capabilities for a variety of automation and robotic applications. softMC has motion and robotics functionalities for both standard robot types such as '''Delta''', '''PUMA''' and '''SCARA''', and non-standard robotic kinematics, such as traverse and scissors. Customized software solutions can also be designed for customer‘s hardware.
 +
 
 +
Gearing and Camming:
 +
* You can slave any axis to any master.  You can enable and disable gearing at any time.  The softMC also supports simulated axes, which can be master or slave in gearing and camming applications and incremental moves run by any axis, master or slave, at any time.
 +
 
 +
<!--  @@@@@@@@@@@@@@@@@@@@
 +
Camming links master and slave axes by a cam table. Camming has all the features of gearing, plus the cam table can have any number of points. The cam points are in x-y format so spacing can be provided independently. Multiple tables can be linked together, allowing you to build complex cam profiles from simpler tables. There is a cycle counter that lets you specify how many cycles to run a cam before ending.
 +
@@@@@@@@@@@@@@@@@@@@ --!>
 +
softMC features Servotronix advanced control algorithms embedded in a qualified off-the-shelf industrial PC, for an open and modular machine control environment. Its powerful and realtime programming language enables preemptive multitasking at user program level.
  
 
softMC is integrated with Servotronix drive-motor systems.
 
softMC is integrated with Servotronix drive-motor systems.
Line 13: Line 22:
 
*Ethernet machine interface
 
*Ethernet machine interface
 
*Support for EtherCAT and CANopen motion buses (Sercos III upon request)
 
*Support for EtherCAT and CANopen motion buses (Sercos III upon request)
*Controls up to 128 interpolated axes
+
*Controls up to 64 interpolated axes
 
*Extensive capabilities for both standard and non-standard robotic kinematics
 
*Extensive capabilities for both standard and non-standard robotic kinematics
  
= softMC Documentation Wiki =
+
== softMC Firmware Version 0.4.17.2 ==  
This wiki contains the documentation for the '''softMC''' multi-axis controller and softMC firmware Version 5.0.0.
+
This wiki contains the documentation for softMC Firmware Version 0.4.17.2
  
Firmware Version 5.0.0 contains many new commands, functions, and properties. In some instances, the behavior of functions, commands, and properties found in previous versions of the firmware have changed. This documentation is not necessarily backward compatible with previous versions of the firmware. If you are using a previous version of the product, it is recommended that you also refer to the documentation that was supplied at the time your received your product.
+
Firmware Version 0.4.17.2 contains many new commands, functions, and properties. In some instances, the behavior of functions, commands, and properties found in previous versions of the firmware have changed. This documentation is not necessarily backward compatible with previous versions of the firmware. If you are using a previous version of the product, it is recommended that you also refer to the documentation that was supplied at the time your received your product.
  
<font color="red">
+
To execute the examples described in this documentation, ControlStudio must be installed on your host computer.
To execute the examples described in this documentation, you must have softMC and BASIC Moves Development Studio<sup>®</sup> installed on your host computer. Some examples also require you to have a drive installed and connected to the softMC using the SERCOS Interface<sup>TM</sup> cables.<br/>
 
  
<s>The ''MC Installation Manual'' describes the procedures for all the necessary installations.
+
<!-- @@@@@@@@@@@@@@@@@@@@
The ''MC Reference Manual'' covers all versions of the firmware.
+
Some examples also require you to have a drive installed and connected to the softMC using the SERCOS Interface<sup>TM</sup> cables.
''MC'' ''Installation ManualMC'' ''BASIC Moves Development Studio ManualSC/MC API'' ''Reference ManualMC'' ''InstallationManual''
 
  
The softMC is a multi-axis controller. The softMC has the features and performance required of today’s multi-axis controllers, and is designed for easy integration into motion control systems and for simplicity of use. The key benefits of the product are:
+
The key benefits of the product are:
  
 
*'''Motion Components Guaranteed to Work Together '''Danaher Motion can provide a complete motion control system,including controller, drives, and motors. All the components are supplied by DanaherMotion, and are tested and guaranteed to work together.
 
*'''Motion Components Guaranteed to Work Together '''Danaher Motion can provide a complete motion control system,including controller, drives, and motors. All the components are supplied by DanaherMotion, and are tested and guaranteed to work together.
Line 37: Line 44:
  
 
'''Windows'''<sup>®</sup>'''-Based Software Supports Microsoft Visual Basic™, Visual C++™, and other Popular Languages'''.
 
'''Windows'''<sup>®</sup>'''-Based Software Supports Microsoft Visual Basic™, Visual C++™, and other Popular Languages'''.
</font>
+
@@@@@@@@@@@@@@@@@@@@ -->
</s>
 
  
= System Hardware =
 
  
<font color="black">
 
Hardware:
 
*Off-the-shelf industrial PC (based on specific product availability)
 
* Other platforms can be evaluated upon special request
 
  
General hardware requirements:
+
== softMC GUI Documents firmware version Table ==
* x86 Intel CPU
 
* RAM: minimum 256 MB
 
* Storage: Compact Flash, minimum 512 MB
 
* 2 x LAN 100 MB / 1 GB , Realtek / Intel
 
* At least 1 UART (RS232, RS422, RS485)
 
* On-board or add-on card for CANopen
 
</font>
 
  
<font color="red"><s>
+
Following table present all softMC available items in term of language version and web site
The softMC hardware is available in two types of implementation: a plug-in circuit board for a host computer, and a stand-alone model.
 
 
 
The PCI plug-in board hardware installs in a host computer (typically a PC), running the Windows NT 4.0, Windows 2000/XP operating systems. The softMC contains a fully-independent computer system., so it does not compete with the host processor system for resources. The softMC uses Pentium 233 MHz or faster microprocessor to provide the power your system needs today, and the x86 upgrade path allows for future enhancement. The softMC includes large on-board memory with ample capacity for your programs and enough space for expansion. There is also an onboard Flashdisk for storage of your programs.
 
 
 
The stand-alone model of the softMC is designed for installation as a component part in industrial equipment. It consists of the PCI version plug-in board and a power supply in an enclosure. The stand-alone model does not have a host CPU to provide a Windows operating system and environment, so it can not directly provide an operator interface. For interactive operation of the stand-alone softMC, you will need a host computer running BASIC Moves Development Studio software and communicating with the softMC ''via'' Ethernet or serial communications with Windows NT, Windows 2000/XP operating system. For additional information concerning communications configuration refer to the ''MC Installation Manual''.
 
 
 
All implementation models of the softMC are functionally equivalent for servo motion control
 
 
 
</font></s>
 
 
 
= Operating System =
 
<font color="red">
 
The softMC is based on the VxWorks<sup>®</sup> Realtime Operating System (RTOS), providing a stable platform for the softMC software. VxWorks is produced by Wind River Systems, Incorporated. VxWorks is continuously evolving, providing a clear path for future upgrades to the softMC.
 
</font>
 
 
 
= MC-Basic Language Compiler =
 
<font color="black">The softMC uses MC-Basic, a language interpreter that semi-compiles commands so they typically execute in less than 5 microseconds. MC-Basic has familiar commands such as FOR…NEXT, IF…THEN, PRINTUSING, PEEK and POKE, as well as common string functions such as CHR$, INSTR, MID$, and STRING$. It allows arrays of up to 10 dimensions, with full support for double precision floating-point math.
 
 
 
MC-Basic is extended to provide support for functions required for motion systems control, such as point to point moves, circular and linear interpolation, camming, and gearing. In addition, it supports multitasking and event-driven programs.</font>
 
 
 
<font color="red">
 
'''Heading ?'''
 
 
 
Gearing and camming have the versatility required for motion control. You can slave any axis to any master. You can enable and disable gearing at any time. The gear ratio is expressed as a double-precision value. The softMC also supports simulated axes, which can be master or slave in gearing and camming applications and incremental moves run by any axis, master or slave, at any time.
 
 
 
Camming links master and slave axes by a cam table. Camming has all the features of gearing, plus the cam table can have any number of points. The cam points are in x-y format so spacing can be provided independently. Multiple tables can be linked together, allowing you to build complex cam profiles from simpler tables. There is a cycle counter that lets you specify how many cycles to run a cam before ending.
 
 
 
'''Heading ?'''
 
 
 
The softMC supports multitasking with up to 256 tasks, running at up to 16 different priority levels. Each task can generate OnEvent(s), for code to be executed when events occur, such as switches tripping, a motor crossing a position, or just about any combination of factors.
 
</font>
 
 
 
= I/O =
 
The softMC provides 23 optically-isolated inputs and 20 optically-isolated outputs as standard features, in addition to limit switches and other drive I/O points that are connected directly to the drives and transferred to the softMC via SERCOS. Additionally, each drive provides hardware for six I/O points: three digital inputs, one digital output, a 14-bit analog input, and a 12-bit analog output. An auxiliary encoder can also be connected to any drive.
 
 
 
If you need more I/O, the softMC includes a PC104 bus. Each softMC can accommodate as many as two PC104 cards. You can also add I/O to your PC bus or other field buses such as DeviceNet and ProfiBus, and your application controls it all. The figure below shows the various possible I/O options.
 
 
 
[[Image:Axsystems;UserManual-1-IO.png|caption|600px]]
 
 
 
= SERCOS =
 
softMC supports SERCOS<sup>®</sup> (Serial Real-time Communications System), an internationally-approved communication standard for motion control (IEC 61491, previously IEC 1491). This communication network is designed for high-speed serial communication of standardized closed-loop data, in real-time, over a noise-immune fiber-optic cable.
 
 
 
The SERCOS interface™ provides an alternative to the analog interface for communication between motion controllers and drives. All signals are transmitted between controller and drives on two fiber optic cables. This eliminates grounding noise and other types of electro-mechanical conductance (EMC) and electro-mechanical interference (EMI).
 
 
 
<font color="red">
 
Because SERCOS is digital, it can transmit signals such as velocity and position commands with high resolution. The softMC and accompanying drives (CD series), support 32-bit velocity commands. This provides a much higher resolution than can be achieved with the analog interface. The most common SERCOS functions are provided in such a way that you do not have to be an expert to gain the benefits.
 
</font>
 
 
 
<font color="red">
 
= API =
 
API is a software package that allows you to communicate with the softMC from popular programming languages, such as Visual Basic. The API provides complete access to all the elements of your system across dual-port RAM.
 
 
 
<font color="red">
 
See the ''MC API Reference Manual'' for more information.
 
</font>
 
 
 
= Multitasking =
 
The softMC is a fully multitasking system (see figure below) in which you can create multiple tasks and multiple elements (e.g., axes) that operate independently of one another. Also, because the API supports multiple applications communicating concurrently, you can write one or more applications that have access to all of the tasks and elements.
 
 
 
[[Image:Axsystems;UserManual-2-Multi-tasking.png|caption|600px]]
 
 
 
= User Communication =
 
The Ethernet and serial ports of the softMC are used for ASCII data transfer. Non-printable characters are sent using '''CHR$'''. Data access is stream-oriented. There is no data framing. softMC Basic applications gain access to either raw serial port or TCP socket. The TCP socket guaranties error free data transfer, while the serial port does not offer error recovery. The transmitted data does not have any meaning in terms of directly controlling the softMC.
 
 
 
User communication provides the basic features of serial and TCP/IP data communication, which is not limited to a specific communication protocol, enabling the usage of any protocol over serial or TCP/IP through an softMC application.
 
 
 
<font color="black"> '''MOVE THE REST OF THIS SECTION INTO A SEPARATE SECTION ENTITLED COMMUNICATION '''
 
</font>
 
 
 
 
 
 
 
== Serial Communication ==
 
The softMC has two RS-232 ports, which can be used for user communication. When COM1 is used for communication with BASIC Moves over API, tasks cannot access it to eliminate interference with ControlStudio communications. Use DIPswitch bit #8 to configure this port:
 
 
 
 
 
{| style="border-spacing:0;"
 
| colspan="2"  style="border:0.039cm double #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <center>'''DIP Switch bit #8 state'''</center>
 
  
 +
{| class="wikitable"
 +
|-
 +
! scope="col" | Help
 +
! scope="col" | Description
 +
! scope="col" | EN
 +
! scope="col" | CN
 +
! scope="col" | DE
 +
! scope="col" | Web site
 +
|-
 +
| On line help
 +
| web based help (Servotronix wiki)
 +
| Y
 +
| Y
 +
| &nbsp;
 +
| Yes
 +
|-
 +
! scope="col" | Documentation/Manuals
 +
! scope="col" | Description
 +
! scope="col" | EN
 +
! scope="col" | CN
 +
! scope="col" | DE
 +
! scope="col" | Web site
 +
|-
 +
| softMC 301 Flyer
 +
| Promotional flyer 2019 V1
 +
| 1
 +
| 1
 +
| 1
 +
| Yes
 +
|-
 +
| softMC 702 Flyer
 +
| Promotional Flyer 2018
 +
| 1
 +
| 1
 +
| 1
 +
| Yes
 +
|-
 +
| softMC 703 Flyer
 +
| Promotional Flyer 2018
 +
| 1.2
 +
| 1.2
 +
| 1.2
 +
| Yes
 +
|-
 +
| softMI HMI Flyer
 +
| Promotional Flyer 2018
 +
| 1
 +
| 1
 +
| 1
 +
| Yes
 +
|-
 +
| softTP Teach pendant Flyer
 +
| Promotional Flyer 2018
 +
| 1
 +
| 1
 +
| 1
 +
| Yes
 +
|-
 +
| Product Presentation
 +
| Product Presentation&nbsp;
 +
| 4
 +
| &nbsp;
 +
| &nbsp;
 +
| No
 +
|-
 +
| Features and Functions
 +
| According to the various categories of controller functionality
 +
| 1.3
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 +
|-
 +
| Installation Guide softMC 301
 +
| Hardware installation, configuration and operation
 +
| 3.3
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 +
|-
 +
| Installation Guide softMC 702
 +
| Hardware installation, configuration and operation
 +
| 3.1
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 +
|-
 +
| Installation Guide softMC 703
 +
| Hardware installation, configuration and operation
 +
| 1
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 +
|-
 +
| Installation Guide softMI HMI
 +
| Hardware installation, configuration and operation
 +
| 1
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 +
|-
 +
| Installation Guide softTP Teach pendant
 +
| Hardware installation, configuration and operation
 +
| 1.2
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 +
|-
 +
| Motion API Ref. Manual
 +
| interface your machine controller with the softMC motion controller
 +
| 1.0
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 +
|-
 +
| Simulator - User Guide
 +
| procedure for installing the softMC Simulator
 +
| 1.2
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 +
|-
 +
| Training Modules
 +
| 11 Modules for softMC
 +
| 1.0
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 +
|-
 +
! scope="col" | Mechanical drawing
 +
! scope="col" | File format
 +
! scope="col" | Ver
 +
! scope="col" | &nbsp;
 +
! scope="col" | &nbsp;
 +
! scope="col" | Web site
 +
|-
 +
| softMC 301
 +
| 2D; PDF, DXF EDRW 3D; EPRT IGS STEP XT
 +
| 3
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 +
|-
 +
| softMC 702
 +
| 2D; PDF, DXF 3D; EPRT IGS STEP
 +
| 1
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 +
|-
 +
| softMC 703
 +
| 2D; PDF, DXF 3D;3D; EPRT IGS STEP
 +
| 1
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 +
|-
 +
! scope="col" | GUI (software)
 +
! scope="col" | Description
 +
! scope="col" | EN
 +
! scope="col" | CN
 +
! scope="col" | DE
 +
! scope="col" | Web site
 +
|-
 +
| ControlStudio
 +
| ControlStudio is a graphic user interface packaged enable setup, configuration and<br/> writing programs to the softMC.<br/> CS - ControlStudio, CFG - Confgurator, MB - Modbus configurator
 +
| CS 1.3(build3, sp 9)<br/> CFG 2.5.7.0<br/> MB 1.3.5.0
 +
| CS 1.3(build3, sp 9)<br/> CFG 2.5.7.0<br/> MB 1.3.5.0
 +
| &nbsp;
 +
| Yes
 +
|-
 +
| HMIStudio
 +
| graphic user interface packaged to build your HMI interface
 +
| 2.4
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 +
|-
 +
| TeachStudio
 +
| Teach pendant graphic user interface packaged to direct manipulate robot '''required license'''
 +
| 2.9.9
 +
| 2.9.9
 +
| &nbsp;
 +
| No
 +
|-
 +
! scope="col" | Software and Examples
 +
! scope="col" | Description
 +
! scope="col" | EN
 +
! scope="col" | CN
 +
! scope="col" | DE
 +
! scope="col" | Web site
 +
|-
 +
| API
 +
| softMC Windows KMAPI DLL 32 bit
 +
| 1.2(build1, sp 1)
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 +
|-
 +
| TP lib
 +
| Teach pendant library for TeachStudio
 +
| TBD
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 +
|-
 +
| Tool Chain softMC 7
 +
| C compiler and linker
 +
| 2011.03.1
 +
| &nbsp;
 +
| &nbsp;
 +
| No
 +
|-
 +
| Simulator Software
 +
| software package that allows you to work on a simulated softMC using only a PC
 +
| 0.4.17.4
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 +
|-
 +
| Bundle for softMC 301 702
 +
| Configurator bundle repository
 +
| 0.4.17.4r6
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 +
|-
 +
| Bundle for softMC 703
 +
| Configurator bundle repository
 +
| 0.4.18.2r5
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 
|-
 
|-
| style="border-top:0.039cm double #000000;border-bottom:0.018cm solid #000000;border-left:0.039cm double #000000;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| ON (default)
+
| Libraries and examples for softMC
| style="border-top:0.039cm double #000000;border-bottom:0.018cm solid #000000;border-left:0.018cm solid #000000;border-right:0.039cm double #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| COM1 is reserved for communication with the host and cannot be used by any other application
+
| Communication, Motion, CAM and more libraries and programs examples *.LIB and *.PRG
 
+
| 0.4.16.7
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 
|-
 
|-
| style="border-top:0.018cm solid #000000;border-bottom:0.039cm double #000000;border-left:0.039cm double #000000;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| OFF
+
| Library for CODESYS
| style="border-top:0.018cm solid #000000;border-bottom:0.039cm double #000000;border-left:0.018cm solid #000000;border-right:0.039cm double #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''COM1 is available for user communication'''
+
| softMC Library for CODESYS
 
+
| 1.0.0.1
|}
+
| &nbsp;
When DIPswitch bit # 8 is ON, the softMC firmware prints boot status messages from COM1 using the following serial communication parameters:
+
| &nbsp;
 
+
| Yes
 
 
{| style="border-spacing:0;"
 
| style="border-top:0.039cm double #000000;border-bottom:0.018cm solid #000000;border-left:0.039cm double #000000;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <center>'''Baudrate '''</center>
 
| style="border-top:0.039cm double #000000;border-bottom:0.018cm solid #000000;border-left:0.018cm solid #000000;border-right:0.039cm double #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <center>9600 bps</center>
 
 
 
 
|-
 
|-
| style="border-top:0.018cm solid #000000;border-bottom:0.018cm solid #000000;border-left:0.039cm double #000000;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <center>'''Parity'''</center>
+
| CODESYS Examples
| style="border-top:0.018cm solid #000000;border-bottom:0.018cm solid #000000;border-left:0.018cm solid #000000;border-right:0.039cm double #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <center>none</center>
+
| CODESYS Project Examples, Flip Flop motion label machine in LD ST FBD
 
+
| 5
 +
| &nbsp;
 +
| &nbsp;
 +
| Yes
 
|-
 
|-
| style="border-top:0.018cm solid #000000;border-bottom:0.018cm solid #000000;border-left:0.039cm double #000000;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <center>'''Stopbits '''</center>
+
! scope="col" | Firmware Release
| style="border-top:0.018cm solid #000000;border-bottom:0.018cm solid #000000;border-left:0.018cm solid #000000;border-right:0.039cm double #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <center>1</center>
+
! scope="col" | Description
 
+
! scope="col" | Ver
 +
! scope="col" | &nbsp;
 +
! scope="col" | &nbsp;
 +
! scope="col" | Web site
 
|-
 
|-
| style="border-top:0.018cm solid #000000;border-bottom:0.039cm double #000000;border-left:0.039cm double #000000;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <center>'''Databits '''</center>
+
| Firmware softMC 301
| style="border-top:0.018cm solid #000000;border-bottom:0.039cm double #000000;border-left:0.018cm solid #000000;border-right:0.039cm double #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <center>8</center>
+
| For CANopen and the EtherCAT module
 
+
| 0.4.17.5r2-C2
|}
+
| &nbsp;
 
+
| &nbsp;
{{Note| State ON of DIPswitch read as 0.}}
+
| No
 
 
For example:
 
 
 
Switches 6 & 8 are OFF. All others are ON.
 
<pre>
 
-->?sys.dipswitch bin
 
0b10100000
 
-->
 
</pre>
 
 
 
=== With Host ===
 
When DIP switch #8 is ON, the softMC can communicate with the host via serial port. This mode of communication requires Virtual Miniport driver, which is installed during setup of ControlStudio. The driver simulates Ethernet connection over serial interface using following fixed parameters:
 
 
 
 
 
{| style="border-spacing:0;"
 
| style="border-top:0.039cm double #000000;border-bottom:0.018cm solid #000000;border-left:0.039cm double #000000;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <div align="right">'''Baudrate '''</div>
 
| style="border-top:0.039cm double #000000;border-bottom:0.018cm solid #000000;border-left:0.018cm solid #000000;border-right:0.039cm double #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| 115200 bps
 
 
 
 
|-
 
|-
| style="border-top:0.018cm solid #000000;border-bottom:0.018cm solid #000000;border-left:0.039cm double #000000;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <div align="right">'''Parity'''</div>
+
| Firmware softMC 702
| style="border-top:0.018cm solid #000000;border-bottom:0.018cm solid #000000;border-left:0.018cm solid #000000;border-right:0.039cm double #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| None
+
| Motion bus: Multi bus, CAN and EtherCAT “B”
 
+
| 0.4.17.5r2-C2
 +
| &nbsp;
 +
| &nbsp;
 +
| No
 
|-
 
|-
| style="border-top:0.018cm solid #000000;border-bottom:0.018cm solid #000000;border-left:0.039cm double #000000;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <div align="right">'''Stopbits '''</div>
+
| Firmware softMC 703
| style="border-top:0.018cm solid #000000;border-bottom:0.018cm solid #000000;border-left:0.018cm solid #000000;border-right:0.039cm double #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| 1
+
| EtherCAT “E”
 
+
| 0.4.18.2
 +
| &nbsp;
 +
| &nbsp;
 +
| No
 
|-
 
|-
| style="border-top:0.018cm solid #000000;border-bottom:0.018cm solid #000000;border-left:0.039cm double #000000;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <div align="right">'''Databits '''</div>
+
! scope="col" | Firmware<br/> Maintenance Customer only
| style="border-top:0.018cm solid #000000;border-bottom:0.018cm solid #000000;border-left:0.018cm solid #000000;border-right:0.039cm double #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| 8
+
! scope="col" | Description
 
+
! scope="col" | Ver
 +
! scope="col" | &nbsp;
 +
! scope="col" | &nbsp;
 +
! scope="col" | Web site
 
|-
 
|-
| style="border-top:0.018cm solid #000000;border-bottom:0.018cm solid #000000;border-left:0.039cm double #000000;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <div align="right">'''IP address'''</div>
+
| Firmware softMC 702
| style="border-top:0.018cm solid #000000;border-bottom:0.018cm solid #000000;border-left:0.018cm solid #000000;border-right:0.039cm double #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| 192.1.1.101
+
| Motion bus: CANopen “C”
 
+
| 0.4.14.14
 +
| &nbsp;
 +
| &nbsp;
 +
| No
 
|-
 
|-
| style="border-top:0.018cm solid #000000;border-bottom:0.039cm double #000000;border-left:0.039cm double #000000;border-right:none;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <div align="right">'''Subnet mask'''</div>
+
| Firmware softMC 702
| style="border-top:0.018cm solid #000000;border-bottom:0.039cm double #000000;border-left:0.018cm solid #000000;border-right:0.039cm double #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| 255.255.255.0
+
| Motion bus: EtherCAT “E”
 
+
| 0.4.14.14
 +
| &nbsp;
 +
| &nbsp;
 +
| No
 
|}
 
|}
All the parameters are fixed and cannot be modified.
 
  
If the driver is installed correctly and ControlSudio is running, it appears in the list of Ethernet adapters as shown below:
+
== MC-Basic Language ==
<pre>
+
See [[MC-Basic_Language_Fundamentals|MC-Basic Language]]
C:\>ipconfig /all
+
<!-- @@@@@@@@@@@@@@@@@@@@
Ethernet adapter Local Area Connection 5:
 
Connection-specific DNS Suffix . . . . :
 
Description . . . . . . . . . . . . . . : Giant Steps Virtual miniport
 
Physical Address. . . . . . . . . . . . : 00-02-1B-D1-A5-FC
 
DHCP Enabled. . . . . . . . . . . . . . : No
 
IP Address. . . . . . . . . . . . . . . : 192.1.1.1
 
Subnet Mask . . . . . . . . . . . . . . : 255.255.255.0
 
Default Gateway . . . . . . . . . . . . :
 
DNS Servers . . . . . . . . . . . . . . :
 
</pre>
 
  
=== Open Serial Port ===
 
Configurate the serial port with '''OPEN'''. Set the following port properties:
 
  
'''BaudRate''' - baud rate of the device set to a specified value.
+
== System Hardware ==
 +
'''MC Controller Hardware Specifications'''
  
'''Parity''' – enable/disable parity detection. When enabled, parity is odd or even.
+
'''System'''
 +
:CPU: 1.86 GHz Intel® Atom™ N2800 dual-core processor
 +
:Chipset: Intel® NM10
 +
:Memory: 1 x 2 GB 204-pin 1066 MHz DDR3 SO-DIMM (system max. 4 GB)
 +
:Ethernet Controller: Dual GbE by Realtek RTL8111E controllers
 +
'''Storage'''
 +
:CompactFlash®: 1 x CompactFlash card slot
 +
:SATA (not used): mSATA and SATA DOM support
 +
'''I/Os and Indicators'''
 +
:Ethernet: 2 x RJ45 ports
 +
:RS232: 2 x DB9 serial ports with 3 kV isolation protection
 +
:RS422/RS485: 2 x DB9 serial ports with 3 kV isolation protection
 +
:CAN Bus: 1 x Phoenix terminal block with 3 kV isolation protection (supports 2-port CAN bus)
 +
:USB:  (not used) 4 x USB 2.0 ports
 +
:Display:  (not used) 1 x VGA port (supports resolution up to 1920 x 1200@ 60Hz)
 +
:Digital I/O:  (not used) 1 x Phoenix terminal block with 3 kV isolation protection (8-bit, 4-bit input/4-bit output)
 +
:Interior Expansion: 1 x PCIe Mini card slot (full size)
 +
:Indicators: OLED
 +
:Buttons: Power, Reset
 +
'''Power'''
 +
:Power Input: 9V–28V DC (3-pin terminal block)
 +
:Power Consumption: 12V@1.85A
 +
:AT/ATX Mode: AT/ATX switch
 +
'''Environmental and Mechanical'''
 +
:Mounting: DIN rail, desktop
 +
:Operating  Temp.: -25°C–65°C (with SSD)
 +
:Storage Temp.: -25°C–70°C
 +
:Humidity: 5%–95%, non-condensing
 +
:Chassis Construction: Extruded aluminum alloy for fanless support
 +
:Chassis Color: Black
 +
:Operating Shock: Half-sine shock test 5G/11ms, 3 shocks per axis
 +
:Operating Vibration: MIL-STD-810F 514.5 C-1 (HDD), MIL-STD-810F 514.5 C-2 (SSD)
 +
:Safety: CE/FCC
 +
:Weight(Net/Gross): 1 kg/2 kg
 +
:Physical Dimensions:59.4 mm x 170 mm x 140 mm (WxHxD)
  
'''DataBits''' - number of data bits.
+
The softMC hardware is available in two types of implementation: a plug-in circuit board for a host computer, and a stand-alone model.
  
'''StopBit''' - number of stop bits.
+
The PCI plug-in board hardware installs in a host computer (typically a PC), running the Windows NT 4.0, Windows 2000/XP operating systems. The softMC contains a fully-independent computer system., so it does not compete with the host processor system for resources. The softMC uses Pentium 233 MHz or faster microprocessor to provide the power your system needs today, and the x86 upgrade path allows for future enhancement. The softMC includes large on-board memory with ample capacity for your programs and enough space for expansion. There is also an onboard Flashdisk for storage of your programs.
  
'''Xonoff''' – sets raw mode or ^S/^Q flow control protocol mode (optional parameter disabled by default).
+
The stand-alone model of the softMC is designed for installation as a component part in industrial equipment. It consists of the PCI version plug-in board and a power supply in an enclosure. The stand-alone model does not have a host CPU to provide a Windows operating system and environment, so it can not directly provide an operator interface. For interactive operation of the stand-alone softMC, you will need a host computer running BASIC Moves Development Studio software and communicating with the softMC ''via'' Ethernet or serial communications with Windows NT, Windows 2000/XP operating system. For additional information concerning communications configuration refer to the ''MC Installation Manual''.
  
For example:
+
All implementation models of the softMC are functionally equivalent for servo motion control.
<pre>
 
OPEN COM2 BUADRATE=9600 PARITY=0 DATABITS=8 STOPBIT=1 AS #1
 
</pre>
 
Opens COM2 at 9600 bps baud-rate, No parity, 8-bit data, 1 stop bit.
 
  
'''OPEN''' assigns a device handle to the communication port. Any further references to the communication port uses the device handle number. The device handle range is 1…255. To change the communication parameters, close the serial port and reopen it using the new parameters. For more information, see '''PRINT #''' and '''INPUT$'''.
+
==  Operating System ==
 +
The operating system provides a stable platform for the softMC software.
  
== TCP/IP Communication ==
+
@@@@@@@@@@@@@@@@@@@@  -->
Use TCP/IP communication with other computers and intelligent I/O devices over the Ethernet network. MC-BASIC uses TCP/IP API (sockets).
 
  
TCP/IP provides multi-thread communications. The same physical link (Ethernet) is shared between several applications. This way, the softMC can connect to BASIC Moves and one or more intelligent I/O devices.
+
== MC-Basic Language Compiler ==
 +
<font color="black">The softMC uses MC-Basic, a language interpreter that semi-compiles commands so they typically execute in less than a microsecond. MC-Basic has familiar commands such as FOR…NEXT, IF…THEN, PRINTUSING, PEEK and POKE, as well as common string functions such as CHR$, INSTR, MID$, and STRING$. It allows arrays of up to 10 dimensions, with full support for double precision floating-point math.  
  
The softMC supports both client and server roles for TCP/IP communications. The TCP/IP client connects to a remote system, which waits for a connection while the TCP/IP server accepts a connection from a remote system. Usually, the softMC serves as client while interfacing to an intelligent I/O connected to the LAN, and as a server when working toward remote host like a software PLC. The softMC uses Realtek RTL8019AS Ethernet NIC at a bit rate of 10 M bps.
+
MC-Basic is extended to provide support for functions required for motion systems control, such as point to point moves, circular and linear interpolation, camming, and gearing. In addition, it supports multitasking and event-driven programs.</font>
  
=== Setup ===
+
=== Command and Property Categories ===
TCP communication starts by opening a socket either to connect to a remote computer (remote host) or accept a connection from a remote host. Use '''CONNECT''' or '''ACCEPT''', depending on the softMC functionality (client or server).
+
Each function opens a page with a list of links to all related MC-Basic commands and properties.
  
'''OPENSOCKET''' creates a TCP socket and assigns the socket descriptor to the specified device handle. The socket is created with '''OPTIONS '''NO_DELAY (send data immediately= 1). Otherwise, the data is buffered in the protocol stack until the buffer is full or a time-out is reached. This improves responsiveness when small amounts of data are sent. This option is recommended for interactive applications with relatively small data transfer. Otherwise, '''OPTIONS''' = 0.
+
* [[:Category:MC-Basic:Arithmetic Functions|Arithmetic Functions]]
<pre>
+
* [[:Category:MC-Basic:C-Interface|C-Interface]]
OPENSOCKET OPTIONS=1 AS #1
+
* [[:Category:MC-Basic:Data Recording|Data Recording]]
</pre>
+
* [[:Category:MC-Basic:Debug Tools|Debug Tools]]
'''OPENSOCKET '''assigns a device handle to the communication port (as '''OPEN'''). Any further reference to the communication port uses the device handle number. The device handle range is 1…255.
+
* [[:Category:MC-Basic:Declarations|Declarations]]
 +
* [[:Category:MC-Basic:Error Handling|Error Handling]]
 +
* [[:Category:MC-Basic:Event Control|Event Control]]
 +
* [[:Category:MC-Basic:File Management|File Management]]
 +
* [[:Category:MC-Basic:Flow Control Statements|Flow Control Statements]]
 +
* [[:Category:MC-Basic:Libraries|Libraries]]
 +
* [[:Category:MC-Basic:Points Handling|Points Handling]]
 +
* [[:Category:MC-Basic:Semaphore Handling|Semaphore Handling]]
 +
* [[:Category:MC-Basic:String Manipulation|String Manipulation]]
 +
* [[:Category:MC-Basic:Task Control|Task Control]]
 +
* [[:Category:MC-Basic:System|System Properties]]
 +
* [[:Category:EtherCAT:Functions|EtherCAT Functions]]
 +
* [[:Category:EtherCAT:Advanced Functions|EtherCAT Advanced Functions]]
 +
<br/>
  
There are several ways to set the IP address of the controller. By default, the softMC boots without a valid IP address. The following options are available to set the IP address of the controller:
+
=== MC-Basic Language System ===
 +
* [[:Category:MC-Basic:System|MC-Basic System Properties]] - a list of the MC-Basic properties that are applicable to the system
 +
* [[MC-Basic Constants|MC-Basic Predefined Constants]]
 +
* [[File Operations|File Operations]]
 +
* [[Input/Output|Input/Output]]
 +
<br/>
  
'''Static IP address setting'''Use SYS.IPADDRESSMASK in the Config.prg file to assign the IP address and Subnet mask:
 
<pre>
 
SYS.IPADDRESSMASK=”212.25.84.109:255.255.255.128”
 
</pre>
 
'''Dynamic address setting by Windows API'''API assigns an IP address to the softMC when it establishes TCP communication with the controller. The IP address and Subnet mask are taken out of a pre-defined address pool. BASIC Moves uses this address assigning method. Refer to the ''BASIC Moves Development Studio<sup>®</sup> User Manual'' and ''MC Reference Manual'' for detailed information.
 
  
'''DHCP'''IP address is assigned by the DHCP server. If your network does not support DHCP, the controller tries to get the address from the DHCP server and times out after few minutes. During that time, communication with the controller is not possible.
+
* [[FAQ System|'''FAQ''' System]] - Ask the developers a question.
<pre>
 
SYS.IPADDRESSMASK=”dhcp”
 
</pre>
 
If DHCP is used, select ''Automatic'' connection method as shown below:
 
  
[[Image:Axsystems;UserManual-3-Setup.png|caption]]
+
<!-- @@@@@@@@@@@@@@@@@@@@
 +
== I/O ==
 +
The softMC provides 23 optically-isolated inputs and 20 optically-isolated outputs as standard features, in addition to limit switches and other drive I/O points that are connected directly to the drives and transferred to the softMC via SERCOS. Additionally, each drive provides hardware for six I/O points: three digital inputs, one digital output, a 14-bit analog input, and a 12-bit analog output. An auxiliary encoder can also be connected to any drive.
  
'''Get the controller’s IP address'''Use '''SYS.IPADDRESSMASK''' to query the IP address and Subnet mask of the softMC.
+
If you need more I/O, the softMC includes a PC104 bus. Each softMC can accommodate as many as two PC104 cards. You can also add I/O to your PC bus or other field buses such as DeviceNet and ProfiBus, and your application controls it all. The figure below shows the various possible I/O options.
<pre>
 
-->?SYS.IPADDRESSMASK
 
  
172.30.3.11:255.255.0.0
+
[[Image:Axsystems;UserManual-1-IO.png|caption|600px]]
</pre>
 
  
{{Note|'''''The softMC has several IP interfaces: Ethernet, IP over serial and IP over DPRAM. However '''SYS.IPADDRESSMASK''' is only valid for Ethernet interfaces. Others have fixed IP addresses, which cannot be changed.'''''}}
+
== SERCOS ==
 +
softMC supports SERCOS<sup>®</sup> (Serial Real-time Communications System), an internationally-approved communication standard for motion control (IEC 61491, previously IEC 1491). This communication network is designed for high-speed serial communication of standardized closed-loop data, in real-time, over a noise-immune fiber-optic cable.
  
'''PING''' tests that a remote host is reachable. The remote host must support ICMP echo request.
+
The SERCOS interface™ provides an alternative to the analog interface for communication between motion controllers and drives. All signals are transmitted between controller and drives on two fiber optic cables. This eliminates grounding noise and other types of electro-mechanical conductance (EMC) and electro-mechanical interference (EMI).
<pre>
 
?PING(”212.25.84.109”)
 
</pre>
 
=== softMC as TCP Client ===
 
When acting as a client, the softMC tries to connect to a remote server until a time out value expires or the connection is rejected. Use '''CONNECT''' when the softMC acts as a client.
 
  
The softMC requests a connection from a remote host, according to a specific IP address and port. '''CONNECT''' blocks task execution until the connection is established or until the command fails. To unblock a task waiting in '''CONNECT''', close the corresponding socket using '''CLOSE'''. In addition, killing a task ('''KILLTASK''') blocked by '''CONNECT''' closes the socket to release the task. '''CONNECT''' may fail due to the following reasons:
+
Because SERCOS is digital, it can transmit signals such as velocity and position commands with high resolution. The softMC and accompanying drives (CD series), support 32-bit velocity commands. This provides a much higher resolution than can be achieved with the analog interface. The most common SERCOS functions are provided in such a way that you do not have to be an expert to gain the benefits.
 
+
@@@@@@@@@@@@@@@@@@@@  -->
# Invalid socket descriptor
 
# Remote host has no application attached to specified port.
 
# Destination address is not reachable
 
 
 
The following example illustrates a typical procedure of establishing a connection to a remote host, and sending and receiving data:
 
<pre>
 
OPENSOCKET OPTIONS=0 AS #1
 
CONNECT (#1,”212.25.84.100”,6002)
 
PRINT #1,”HELLO”
 
?INPUT$(LOC(1),#1)
 
CLOSE #1
 
</pre>
 
 
 
=== softMC as TCP Server ===
 
When acting as a server. the softMC endlessly waits for a connection from the remote host. Use '''ACCEPT''' when the softMC acts as server. '''ACCEPT''' binds a socket to a specified port and waits for a connection. Simultaneous '''ACCEPT'''s on the same port are not allowed. '''ACCEPT''' blocks the execution of the calling task until a connection is established. To unblock the task waiting in '''ACCEPT''', close the corresponding socket with '''CLOSE'''. In addition, killing a task ('''KILLTASK''') blocked in '''ACCEPT '''closes the socket and releases the task. The following example illustrates a typical procedure of waiting for a connection from a remote host, and sending and receiving data:
 
<pre>
 
OPENSOCKET OPTIONS=0 AS #1
 
ACCEPT (#1,20000)
 
PRINT #1,”HELLO”
 
?INPUT$(LOC(1),#1)
 
CLOSE #1
 
</pre>
 
 
 
== Send /Receive Data ==
 
Serial and TCP communication use the same commands to send and receive data. After establishing communication over TCP or after configuring the serial port communication parameters, send and receive data regardless the communication type. Data flow differences are communication speed and the size of the input and output buffers. TCP/IP communication uses larger communication buffers.
 
 
 
=== Receive Data ===
 
The input-buffer of the serial ports is a fixed512 bytes size. User communication allows receiving strings using '''INPUT$'''. To check if data is ready at the input buffer, use '''LOC'''. The following example checks the number of bytes available at the input buffers and reads all the available data:
 
<pre>
 
-->?LOC(1)
 
11
 
-->STRING_VAR = INPUT$(11, #1)
 
-->?STRING_VAR
 
Hello World
 
</pre>
 
 
 
If '''INPUT$''' requests reading a data length larger than available data, the command returns only the available data:
 
<pre>
 
-->?LOC(1)
 
11
 
-->STRING_VAR = INPUT$(20, #1)
 
-->?STRING_VAR
 
Hello World
 
</pre>
 
 
 
'''LOC''' can be used within the '''INPUT$''':
 
<pre>
 
STRING_VAR = INPUT$(LOC(1), #1)
 
</pre>
 
 
 
A partial read of the input buffer is allowed. This way, several calls to '''INPUT$''' empty the input-buffer:
 
<pre>
 
-->?LOC(1)
 
11
 
-->STRING_VAR = INPUT$(3, #1)
 
-->?STRING_VAR
 
Hel
 
-->?LOC(1)
 
8
 
-->STRING_VAR = INPUT$(8, #1)
 
-->?STRING_VAR
 
lo World
 
</pre>
 
 
 
When calling '''INPUT$''', the system does not wait for data. If the input-buffer is empty, the command returns without any return value:
 
<pre>
 
-->?LOC(1)
 
0
 
-->STRING_VAR = INPUT$(10, #1)
 
-->?len(STRING_VAR)
 
0
 
</pre>
 
 
 
=== Send Data ===
 
'''PRINT #''' and '''PRINTUSING #''' send data over the serial port. Both commands use the same formatting as '''PRINT''' and '''PRINTUSING'''.
 
 
 
 
 
{{Note|''PRINT #''' and '''PRINTUSING #''' appends a carriage-return (ASCII value 13) and line-feed (ASCII value 10) characters at the end of each message. To print a message without the terminating carriage-return and line-feed characters use a semicolon at the end of the command.'''''}}
 
 
 
For example, the following uses '''PRINT #''' to send data:
 
<pre>
 
-->STRING_MESSAGE = "ERROR"
 
-->PRINT #1, STRING_MESSAGE,"A1.PCMD=";A1.PCMD;
 
</pre>
 
 
 
The output is:
 
<pre>
 
ERRORA1.PCMD=0.000000000000000e+00
 
</pre>
 
  
The values of the following variables are sent one after the other. The output is (hexadecimal) 0x37 0x28:
+
== softMC Simulator ==
<pre>
 
I1=55
 
I2=40
 
PRINT #1, I1;I2
 
</pre>
 
  
The output is:
+
softMC Simulator is a software package that allows you to work on a simulated softMC using only a PC, without requiring any other hardware.
<pre>
 
5540
 
</pre>
 
  
=== Send Data Block ===
+
The package has three components:
'''PRINTTOBUFF # '''and '''PRINTUSINGTOBUFF # a'''llows buffering of data before actually being sent. This eliminates inter-character delays.
+
<pre>
+
* '''VirtualBox'''. An Oracle product, this is a cross-platform virtualization application for x86-based systems.  
printtobuff #handle,chr$(0); chr$(message_length); chr$(0);send=false
+
:Cross-platform means it installs on Windows, Linux, Mac OS X and Solaris x86 computers. Virtualization software means that you can create and run multiple virtual machines (VM), running different operating systems, on the same computer at the same time.
<nowiki>printtobuff #handle,chr$(request[ii]);send=false</nowiki>
+
:Since the softMC is a Linux-based system, the Oracle VirtualBox allows you to simulate the softMC on a PC.
<nowiki>printtobuff #handle,chr$(request[ii]);send=true</nowiki>
 
</pre>
 
  
=== Send/Receive NULL Character for Firmware Versions, Not Supporting UTF-8 Format ===
+
*'''softMC Controller Simulator''' (called softMC SIM). This is the virtual machine that simulates the softMC.
When using a specific protocol over Serial or TCP/IP ModBus RTU or ModBus TCP), the NULL character is part of the message. The message block cannot be saved in a STRING type variable since the NULL character terminates the string.
 
  
In UTF-8 supporting versions 4.5.1 and higher, NULL characters are no longer cut out from strings, resulting in a different behavior:
+
* '''ControlStudio''' software by Servotronix. This is a development tool for motion applications. It contains a programming editor, data recorder, debugger and monitoring tools.
  
The string resulting from concatenation is composed from 'A''\0''B'; that is, there is a NULL character in the MIDDLE of the string:
+
: This is the same software that is used with actual hardware. If it is already installed on your PC, you do not need to reinstall.
  
Len of Chr$(0) is 1:
+
To download the software and installation instructions, go to the '''Downloads|Simulator''' section on the webpage:<br/>
 +
http://servotronix.com/products/softmc-motion-controller/
 +
<br/>
  
In previous versions NULL characters could not appear in the middle of strings, since the concatenation process cut these characters from the resulting string. End to send a NULL character in a message, send the data as single bytes instead of a string type message:
+
== Multitasking ==  
<pre>
+
The softMC is a fully multitasking system in which you can create multiple tasks and multiple elements (e.g., axes) that operate independently of one another. The API supports multiple applications communicating concurrently, thus allowing you to write one or more applications that have access to all of the tasks and elements.
<nowiki>COMMON SHARED X[10] AS LONG</nowiki>
 
<nowiki>X[1]=0x10</nowiki>
 
<nowiki>X[2]=0</nowiki>
 
<nowiki>X[3]=0x10</nowiki>
 
<nowiki>PRINT #1, CHR$(X[1]);CHR$(X[2]);CHR$(X[3]);</nowiki>
 
</pre>
 
  
The output is the following stream of bytes:
+
The softMC supports multitasking of up to 256 tasks, running at up to 16 different priority levels. Each task can generate OnEvent(s), for code to be executed upon occurrence of events, such as switch tripping, a motor crossing a position, or just about any combination of factors.
<pre>
+
<!-- [[Image:Axsystems;UserManual-2-Multi-tasking.png|caption|600px]] -->
0x10, 0x0, 0x10
 
</pre>
 
  
When the received data contains a NULL character, read the data from the input buffer as single bytes instead of reading it into a string type variable. Convert the incoming data to a numeric value to get its ASCII value:
+
==  User Communication == 
<pre>
+
Ethernet and serial ports are used for ASCII data transfer. Non-printable characters are sent using '''CHR$'''. Data access is stream-oriented. There is no data framing. softMC Basic applications gain access to either a raw serial port or a TCP socket. The TCP socket guarantees error free data transfer, while the serial port does not offer error recovery. The transmitted data does not have any meaning in terms of directly controlling the softMC.
<nowiki>DIM SHARED TEMP[10] AS DOUBLE</nowiki>
 
FOR IDX = 1 TO LOC(1)
 
<nowiki>TEMP[IDX] = ASC(INPUT$(1,#1))</nowiki>
 
NEXT IDX
 
</pre>
 
  
The figure below gives a general description of the TCP/IP communication for both the client and host.
+
User communication provides the basic features of serial and TCP/IP data communication, which is not limited to a specific communication protocol, enabling the use of any protocol over serial or TCP/IP through a softMC application.
  
[[Image:Axsystems;UserManual-4-SendReceive.png|caption|600px]]
+
Refer to: '''[[Communication|Communication]]'''
  
=== Close Connection ===
+
== Technical Support ==  
'''CLOSE''' closes the connection and releases the device handle:
+
If you need assistance with installation and configuration of softMC, contact technical support:  
<pre>
+
[mailto:tech.support@servotronix.com Technical Support]
-->CLOSE #1
 
</pre>
 
  
  
[[Category:Axystems:softMC Firmware|Overview]]
+
[[Category:softMC Firmware|Overview]]

Latest revision as of 12:28, 21 July 2019

Language: English  • Deutsch • 中文(简体)‎

Introduction

softMC multi-axis motion control firmware provides the features and performance required of today’s multi-axis controllers, and is designed for easy integration into motion control systems as well as simplicity of use.

softMC provides extensive programming capabilities for a variety of automation and robotic applications. softMC has motion and robotics functionalities for both standard robot types such as Delta, PUMA and SCARA, and non-standard robotic kinematics, such as traverse and scissors. Customized software solutions can also be designed for customer‘s hardware.

Gearing and Camming:

  • You can slave any axis to any master. You can enable and disable gearing at any time. The softMC also supports simulated axes, which can be master or slave in gearing and camming applications and incremental moves run by any axis, master or slave, at any time.



softMC GUI Documents firmware version Table

Following table present all softMC available items in term of language version and web site

Help Description EN CN DE Web site
On line help web based help (Servotronix wiki) Y Y   Yes
Documentation/Manuals Description EN CN DE Web site
softMC 301 Flyer Promotional flyer 2019 V1 1 1 1 Yes
softMC 702 Flyer Promotional Flyer 2018 1 1 1 Yes
softMC 703 Flyer Promotional Flyer 2018 1.2 1.2 1.2 Yes
softMI HMI Flyer Promotional Flyer 2018 1 1 1 Yes
softTP Teach pendant Flyer Promotional Flyer 2018 1 1 1 Yes
Product Presentation Product Presentation  4     No
Features and Functions According to the various categories of controller functionality 1.3     Yes
Installation Guide softMC 301 Hardware installation, configuration and operation 3.3     Yes
Installation Guide softMC 702 Hardware installation, configuration and operation 3.1     Yes
Installation Guide softMC 703 Hardware installation, configuration and operation 1     Yes
Installation Guide softMI HMI Hardware installation, configuration and operation 1     Yes
Installation Guide softTP Teach pendant Hardware installation, configuration and operation 1.2     Yes
Motion API Ref. Manual interface your machine controller with the softMC motion controller 1.0     Yes
Simulator - User Guide procedure for installing the softMC Simulator 1.2     Yes
Training Modules 11 Modules for softMC 1.0     Yes
Mechanical drawing File format Ver     Web site
softMC 301 2D; PDF, DXF EDRW 3D; EPRT IGS STEP XT 3     Yes
softMC 702 2D; PDF, DXF 3D; EPRT IGS STEP 1     Yes
softMC 703 2D; PDF, DXF 3D;3D; EPRT IGS STEP 1     Yes
GUI (software) Description EN CN DE Web site
ControlStudio ControlStudio is a graphic user interface packaged enable setup, configuration and
writing programs to the softMC.
CS - ControlStudio, CFG - Confgurator, MB - Modbus configurator
CS 1.3(build3, sp 9)
CFG 2.5.7.0
MB 1.3.5.0
CS 1.3(build3, sp 9)
CFG 2.5.7.0
MB 1.3.5.0
  Yes
HMIStudio graphic user interface packaged to build your HMI interface 2.4     Yes
TeachStudio Teach pendant graphic user interface packaged to direct manipulate robot required license 2.9.9 2.9.9   No
Software and Examples Description EN CN DE Web site
API softMC Windows KMAPI DLL 32 bit 1.2(build1, sp 1)     Yes
TP lib Teach pendant library for TeachStudio TBD     Yes
Tool Chain softMC 7 C compiler and linker 2011.03.1     No
Simulator Software software package that allows you to work on a simulated softMC using only a PC 0.4.17.4     Yes
Bundle for softMC 301 702 Configurator bundle repository 0.4.17.4r6     Yes
Bundle for softMC 703 Configurator bundle repository 0.4.18.2r5     Yes
Libraries and examples for softMC Communication, Motion, CAM and more libraries and programs examples *.LIB and *.PRG 0.4.16.7     Yes
Library for CODESYS softMC Library for CODESYS 1.0.0.1     Yes
CODESYS Examples CODESYS Project Examples, Flip Flop motion label machine in LD ST FBD 5     Yes
Firmware Release Description Ver     Web site
Firmware softMC 301 For CANopen and the EtherCAT module 0.4.17.5r2-C2     No
Firmware softMC 702 Motion bus: Multi bus, CAN and EtherCAT “B” 0.4.17.5r2-C2     No
Firmware softMC 703 EtherCAT “E” 0.4.18.2     No
Firmware
Maintenance Customer only
Description Ver     Web site
Firmware softMC 702 Motion bus: CANopen “C” 0.4.14.14     No
Firmware softMC 702 Motion bus: EtherCAT “E” 0.4.14.14     No

MC-Basic Language

See MC-Basic Language

MC-Basic Language Compiler

The softMC uses MC-Basic, a language interpreter that semi-compiles commands so they typically execute in less than a microsecond. MC-Basic has familiar commands such as FOR…NEXT, IF…THEN, PRINTUSING, PEEK and POKE, as well as common string functions such as CHR$, INSTR, MID$, and STRING$. It allows arrays of up to 10 dimensions, with full support for double precision floating-point math.

MC-Basic is extended to provide support for functions required for motion systems control, such as point to point moves, circular and linear interpolation, camming, and gearing. In addition, it supports multitasking and event-driven programs.

Command and Property Categories

Each function opens a page with a list of links to all related MC-Basic commands and properties.


MC-Basic Language System




softMC Simulator

softMC Simulator is a software package that allows you to work on a simulated softMC using only a PC, without requiring any other hardware.

The package has three components:

  • VirtualBox. An Oracle product, this is a cross-platform virtualization application for x86-based systems.
Cross-platform means it installs on Windows, Linux, Mac OS X and Solaris x86 computers. Virtualization software means that you can create and run multiple virtual machines (VM), running different operating systems, on the same computer at the same time.
Since the softMC is a Linux-based system, the Oracle VirtualBox allows you to simulate the softMC on a PC.
  • softMC Controller Simulator (called softMC SIM). This is the virtual machine that simulates the softMC.
  • ControlStudio software by Servotronix. This is a development tool for motion applications. It contains a programming editor, data recorder, debugger and monitoring tools.
This is the same software that is used with actual hardware. If it is already installed on your PC, you do not need to reinstall.

To download the software and installation instructions, go to the Downloads|Simulator section on the webpage:
http://servotronix.com/products/softmc-motion-controller/

Multitasking

The softMC is a fully multitasking system in which you can create multiple tasks and multiple elements (e.g., axes) that operate independently of one another. The API supports multiple applications communicating concurrently, thus allowing you to write one or more applications that have access to all of the tasks and elements.

The softMC supports multitasking of up to 256 tasks, running at up to 16 different priority levels. Each task can generate OnEvent(s), for code to be executed upon occurrence of events, such as switch tripping, a motor crossing a position, or just about any combination of factors.

User Communication

Ethernet and serial ports are used for ASCII data transfer. Non-printable characters are sent using CHR$. Data access is stream-oriented. There is no data framing. softMC Basic applications gain access to either a raw serial port or a TCP socket. The TCP socket guarantees error free data transfer, while the serial port does not offer error recovery. The transmitted data does not have any meaning in terms of directly controlling the softMC.

User communication provides the basic features of serial and TCP/IP data communication, which is not limited to a specific communication protocol, enabling the use of any protocol over serial or TCP/IP through a softMC application.

Refer to: Communication

Technical Support

If you need assistance with installation and configuration of softMC, contact technical support: Technical Support