Tag Archives: rs485

Implementing the Omron Host Link Protocol VB.Net

Previously we used VB6 (Visual Basic 6) to implement the Omron Host Link Protocol to communicate to our programmable logic controller. (PLC) In part 2 we used Visual Basic for Applications (VBA) to accomplish our host link serial communication. We will now look at using VB.Net to establish and retrieve information in and out of the PLC using host link. (C mode commands)

Hostlink communication protocol is a method developed by Omron for communication to PLC’s and other equipment. This ASCII based protocol is used over RS232 or RS422/RS485. It is a many to one implementation which means that you can communicate with up to 32 devices back to a master. (1:N) This communication on the industrial floor can control PLC’s, Temperature Controllers, Panel Meters, etc.

The Omron CP1H plc will be used with a CP1W-CIF11 (RS485) communication serial link adapter. We will also use a USB-485M Universal Serial Bus to RS485 adapter from automation direct. The video at the end of this post will demonstrate the communications by reading 10 registers from the DM area of the PLC. Continue Reading!

Horner XL4 Modbus RTU Instructions

We will now communicate Modbus Serial RS485 from the Horner Master controller to the Solo process temperature controller. The Horner APG XL4 all in one controller has several different ports for communications. We have both serial and Ethernet-type ports that can be used for many different protocols. These protocols can be downloaded from the Horner APG website and transferred into the controller. We will be looking at the Modbus RTU protocol. Using the serial RS485 port on the XL4 we will communicate to a Solo process temperature controller. We will read the process value (PV) into the Horner APG XL4 controller and write the set value (SV) back into the process temperature controller. This is all accomplished without any ladder logic in the PLC. The Horner APG XL4 is one of the easiest networks to set up. Continue Reading!

AdvancedHMI to Solo Process Temperature Controller

Modbus RTU will be the serial (RS485) method in which we will communicate between the AdvancedHMI Screen and the Automation Direct Solo Process Temperature Controller.



We can address up to 247 (Solo 1 to 247) devices on this master-slave protocol. A maximum of 32 devices (Nodes) on the network can communicate to the master. A review of the Modbus RTU protocol can be seen at the following URL.
http://www.rtautomation.com/technologies/modbus-rtu/

AdvancedHMI is a free HMI programming package the runs on Microsoft Visual Studio. It can be downloaded at the following URL.
https://sourceforge.net/projects/advancedhmi/

Connections:
We will be running the AdvancedHMI software on the computer. One of the USB ports will have a USB to RS485 adapter and communicate RS485 to the Solo process temperature controller.
Solo Process Temp Controller 010 Communication Diagram-min
See the following post to install the USB to RS485 adapter.
https://accautomation.ca/usb-to-rs485-pc-adapter-installation/

Solo Controller Settings:
In the Initial Setting Mode we will change the online configuration and make the changes to the Modbus settings as follows: 9600 Baud, Even, 7 Data Bits, 1 Stop Bit, Modbus ASCII Format. We will leave the default unit number as 1. See the following post to set the controller:
https://accautomation.ca/solo-process-temperature-controller/

Modbus RTU (Addresses)
The following address will be used in our project:
AdvancedHMI to Solo 050-min

AdvancedHMI to Solo 055-min
AdvancedHMI will use the Modbus Decimal value in the PLCAddressValue to determine the information that you want to get. For a list of all Modbus addresses that can be used in your project, refer to the Solo Manual located a the following URL:
https://www.automationdirect.com/adc/Manuals/Catalog/Process_Control_-a-_Measurement/Temperature_-z-_Process_Controllers

Screen Display: (AdvancedHMI)
Here is what our screen will look like:
AdvancedHMI to Solo 010-min
We have mimicked the look of the solo process temperature controller. Our PV and SV values are DigitalPanelMeters from the AdvancedHMI toolbar.  The eight output indicators are just labels.

Our ModbusRTUCom1 settings are as follows:
AdvancedHMI to Solo 030-min
Settings: 9600, 8, Even, One StopBit and Station 1 should all match the settings in the Solo process temperature controller that we did previously.
PollRateOverride will allow us to determine how often communication will take place to the controller. (250msec)
The PortName will be the same port number that the computer will communicate out of. This will be set when you install the USB to RS485 adapter. It may change if a different USB port is used.

The DataSubsciber1 will be used to determine the status of the controller.
AdvancedHMI to Solo 040-min
PLCAddressValue = 44139

We read the value of the eight status bits and convert this into a string so we can determine the status of each of the individual bits. Here is the code that is used to do this. It is the only code required for this application.

Private Sub DataSubscriber1_DataChanged(sender As Object, e AsDrivers.Common.PlcComEventArgs) Handles DataSubscriber1.DataChanged
        Dim i As Integer = DataSubscriber1.Value
        Dim Status As String
        Status = Convert.ToString(i, 2).PadLeft(8, "0") '8 bits
        'There are 8 bits that we need to check and account for on our screen. 
        'Modbus Decimal - 44139
        'Bit 0 - ALM3 - Alarm 3
        'Bit 1 - ALM2 - Alarm 2
        'Bit 2 - C degrees
        'Bit 3 - F degrees
        'Bit 4 - ALM1 - Alarm 1
        'Bit 5 - OUT 2 
        'Bit 6 - OUT 1
        'Bit 7 - AT - Auto Tuning

The complete AdvancedHMI code for this application can be downloaded at the end of the post.

The PV and SV indicators are DigitalPanelMeters as mentioned above.
AdvancedHMI to Solo 060-min

AdvancedHMI to Solo 065-min
They both have four digits with a decimal position of 1. This will give us a value between 000.0 and 999.9.
The SV includes a keypad to change the set value. KeypadScaleFactor is set to 0.1 to allow for the decimal place.

Included in our display is a BasicTrendChart from the AdvancedHMI toolbar.
AdvancedHMI to Solo 075-min

AdvancedHMI to Solo 070-min
You want to make sure that the YMaximum and YMinimum settings are set to the values will not go past these settings. If they do then the graph line will disappear from the chart at that point and time.
This will show a running trend for the last 5 minutes.
Polling rate is 250msec x 1200 points in the chart = 300 000msec
300 000msec / 1000 = 300 seconds
300 seconds / 60 (seconds in minute) = 5 minutes

Notes: Displaying Extended ASCII Symbols in Visual Studio (VB.NET)
You can display any symbol in the visual studio environment by holding the ‘Alt’ key down and typing the decimal number of the symbol that you want. In our example, the degrees symbol is Alt 248.
Here are the extended ASCII symbols:
AdvancedHMI to Solo 020-min
http://www.asciitable.com/

Running the Application:
AdvancedHMI to Solo 085-min

You will notice that the response rate is very quick. (250msec) As the PV, SV or indication values change, the screen will get updated.AdvancedHMI to Solo 090-min

The trend chart will show the last 5 minutes of the PV value. AdvancedHMI to Solo 095-min

As you can see, programming the AdvancedHMI to communicate to the Solo process temperature controller is very easily done.

Download the AdvancedHMI code for this project here.

Watch on YouTube: AdvancedHMI to Solo Process Temperature Controller
If you have any questions or need further information please contact me.
Thank you,
Garry



If you’re like most of my readers, you’re committed to learning about technology. Numbering systems used in PLC’s are not difficult to learn and understand. We will walk through the numbering systems used in PLCs. This includes Bits, Decimal, Hexadecimal, ASCII and Floating Point.

To get this free article, subscribe to my free email newsletter.


Use the information to inform other people how numbering systems work. Sign up now.

The ‘Robust Data Logging for Free’ eBook is also available as a free download. The link is included when you subscribe to ACC Automation.


USB to RS485 PC Adapter Installation

We will be installing a usb to rs485 installation on our computer. The USB-485M is a 2-wire USB to RS-485 serial communication adapter for RS485 use. It does not require an external power supply or complicated configuration.

It has a Type A (plug) USB connector for the computer side and a universal female RJ45/RJ12 modular connector. This will accept RJ12 and RJ45 plugs.  The USB-485M supports multiple baud rates and is USB V2.0 Compliant.



Installing the Driver on PC

Do NOT connect the USB-485M to your PC before installing the driver file.

Go to the Automation Direct website and download the latest drivers for this device. I would not use the mini-CD that came with the converter because it may be out of date.
USB-485M Serial Converter Support Resources
USB RS485 Installation 010-min

Download and extract the zip file. (Right-click on the zip file and select Extract All…. )
If you have a 64bit computer double click on the following file:
CP210xVCPInstaller_x64.exe
If you have a 32bit computer double click on this file:
CP210xVCPInstaller_x86.exe

If you are unsure as to a 32 bit or 64-bit computer then go to the control panel and look under the system. Under System type, it will display either a 32-bit Operating or 64-bit Operating system.
Alternatively, on Windows 7 you can click Start and right-click on Computer.
USB RS485 Installation 080-min
Selecting properties will call up the system information for you.
USB RS485 Installation 090-min

This will now start the installation of the CP210x USB to UART Bridge Driver. Select Next.USB RS485 Installation 020-min

You must accept the license agreement before the software will install. Select ‘I accept this agreement’ and hit Next.USB RS485 Installation 030-min

You will now get a message that the installation is complete. The Silicon Laboratories PC Driver is now installed. Click Finish.USB RS485 Installation 040-min

We will now configure the device driver for our hardware.

Connect the USB 485M to your PC.

The driver software on our PC installation will begin by searching for the CP2103 USB to UART Bridge Controller. It will start by searching the windows update…
USB RS485 Installation 050-min

Once the software has been configured on the PC a message will be displayed as follows. If it cannot find the driver software you can manually select the x64 (64bit) or x86 (32bit) folders from the downloaded driver files.USB RS485 Installation 060-min

You can now call up the device manager and view the ports on your computer. The Silicon Labs CP210x USB to UART Bridge is on communication port 5. COM5 will now point to the USB port where the information is converted to an RS485 signal.USB RS485 Installation 070-min

We are now ready to connect to our equipment with the USB to RS485 converter. Since this is a serial device and is a 1: N connection. This means that we will have a master and at least one slave unit. The master is usually the PC (personal computer) that will control all communication. It will request information and receive answers. All communication must have the same parameters when communicating. What separates the communication is that each slave is assigned a unique number.
Example:

Device Computer ‘Master’ Solo Process Controller
‘Slave’
Do-More PLC
‘Slave’
Additional Devices
‘Slaves’
Station Address / Unit number N/A 1 2
Baud Rate 9600 9600 9600 9600
Data Bits 8 8 8 8
Parity Even Even Even Even
Stop Bits 1 1 1 1

The protocol is the actual communication (Information format that is transferred) that takes place over the network. (Master to Slaves) The media is the RS485 serial cable itself.

Watch on YouTube: USB to RS485 PC Adapter Installation
If you have any questions or need further information please contact me.
Thank you,
Garry



If you’re like most of my readers, you’re committed to learning about technology. Numbering systems used in PLC’s are not difficult to learn and understand. We will walk through the numbering systems used in PLCs. This includes Bits, Decimal, Hexadecimal, ASCII and Floating Point.

To get this free article, subscribe to my free email newsletter.


Use the information to inform other people how numbering systems work. Sign up now.

The ‘Robust Data Logging for Free’ eBook is also available as a free download. The link is included when you subscribe to ACC Automation.