Dear Customers,

The PolySync Support Center is now just for submitting tickets to our support team. All articles and tutorials have been moved to the new PolySync Help Center and the content below will be removed shortly.

Thank you,
The PolySync Team

PolySync networking and distributed systems

There are two network configuration paradigms that a PolySync Host may fall under:

  • Single Host Runtime
  • Multi-Host (Distrbiuted) Runtime

A PolySync Host is defined as any ECU or machine running PolySync applications. The applications include PolySync Manager, Studio and Dynamic Drivers, or a custom application you've written.

In all network configurations, applications and Hosts communicate by publishing and subscribing messages to the PolySync bus. The PolySync bus exists on the physical Ethernet layer and is accessible through the PolySync Hosts defined IP address.

Single Host

To isolate your single machine you can still set a static IP address, so long as the IP address exists on the machine. First determine the IP address you wish to use. It's recommended to set up a persistent IP address through Ubuntu Network Manager or the `/etc/network/interfaces` file.

You can set a temporary address for the interface if there is not a physical Ethernet cable connected.

$ sudo ifconfig eth0 192.168.200.100

Next configure PolySync to use the static IP that was just set for eth0:

$ polysync-manager -s 192.168.200.100

If you see the following error, you need to ensure that the IP address exists on the host (you can use ifconfig to list available interfaces and currently assigned IP addresses).

ERROR [30340:src/polysync_core.c:873] manager : (569) -- address '192.168.200.100' does not exist on this host - use the set-address command to verify a valid interface exist 

Note that if you swap out your System Design File (polysync/db/psync.sdf) you will need to re-run the PolySync Manager set-address command.

Distributed Host

 For each Host in a Multi-Host Distributed Runtime you must:

  • designate a PolySync Ethernet interface and IP subnet
  • determine a unique IP address within the defined subnet
  • start PolySync Manager PTP services for clock synchronization

PolySync Ethernet Interface

Most machines have at least one Ethernet interface, also known as a Network Interface Card (NIC). To list all available NICs you can use the system command ifconfig:

$ ifconfig

For machines with a single NIC the Ethernet interface displayed -- eth0 -- must be set designated as the PolySync Ethernet interface.

PolySync IP Address

Once a PolySync IP address is defined (set to anything other than AUTO), the IP address must exist on an Ethernet interface before any PolySync application may run.

The most common network configuration solutions define a single subnet for all Hosts to communicate on. Advanced users may set the subnet mask and perform more sophisticated networking solutions, but this guide will demonstrate configuring a distributed runtime with Hosts on a single subnet.

Let's define our Hosts on the '200' subnet -- that's to say that all Hosts IP addresses will start with '192.168.200'. Each Host defined on the subnet will have a unique address. Once an address is selected use the PolySync Manager to update the PolySync SDF and necessary files.

$ polysync-manager -s 192.168.200.100

The IP address must exist on the Host (shown through 'ifconfig' command) before PolySync applications may run.

Note that if you swap out your System Design File (polysync/db/psync.sdf) you will need to re-run the PolySync Manager set-address command.

Start PolySync Manager PTP Services

It is required to run the IEEE-1588 Precision Time Protocol (PTP) service with distributed PolySync systems, specifically while performing Record or Replay functionalities.

Without the PTP service, Hosts defined on the same network will have differing system times and PolySync data will not be aligned.

To start PTP services an Ethernet interface must have already been designated, shown in the previous step.You must grant sudo level permission for the PolySync Manager to start PTP services:

$ sudo /usr/local/polysync/bin/polysync-manager -p

It's advised to leave PolySync PTP services running at all times. However if necessary you can stop the PTP service with the PolySync Manager as well:

$ sudo /usr/local/polysync/bin/polysync-manager -l

Start PTP Services During Start-Up

To start PTP services during the Host start-up (boot) routine, you can follow these steps:

    • Create a bash script file located in /etc/init.d/ named psync-startup.sh then copy the following lines:
#!/bin/bash
# source the environment
. /usr/local/polysync/utils/set_env.sh
# start PolySync PTP services, called as sudo during ECU booting
/usr/local/polysync/bin/polysync-manager -p
    • Make the script executable
$ chmod +x /etc/init.d/psync-startup.sh
    • Create a symbolic link to the appropriate runtime level (user runtime level) in which to execute the script
$ sudo ln -s /etc/init.d/psync-startup.sh /etc/rc4.d/S30psync-startup.sh
Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.