Implementation of customized SCADA for X-Ray Machine
Abstract
This paper is an effort to enable the Delta PLC (Programmable Logic Controller) DVP14SS to communicate with the Visual Basic 6.0 using Modbus.DLL. The communication between DVP14SS
and Visual Basic 6.0 is via Modbus Serial Protocol stated by Delta PLC manufactures. In automated systems there is control supervision, and also health and safety monitoring via supervisory control and data acquisition
(SCADA) systems. Values of important parameters such as temperatures, pressures, voltages, etc. are sensed and transferred to monitoring stations in control rooms. After processing the information, decisions are made and supervisory Commands are sent to change conditions such as set points or to engage emergency procedures. The data from sensors and set commands to actuators are sent via wired or wireless communication channels. So, communication mechanisms are an integral part of any complex automated system. The SCADA software’s are the software packages and are not free and the cost depends on tag count.
Visual Basic 6.0 platform can be used to develop the SCADA application effectively. Using VB 6.0 a platform can be developed to integrate software and hardware across spectrum of vendors. Here, a simple approach is proposed; which takes care of the communication between Delta PLC and visual Basic using Modbus DLL (provided by Delta PLC). Visual Basic can serve as a cost effective solution since it is not necessary to purchase a licenses for a small scale application as well as it is cheaper than conventional SCADA packages.
and Visual Basic 6.0 is via Modbus Serial Protocol stated by Delta PLC manufactures. In automated systems there is control supervision, and also health and safety monitoring via supervisory control and data acquisition
(SCADA) systems. Values of important parameters such as temperatures, pressures, voltages, etc. are sensed and transferred to monitoring stations in control rooms. After processing the information, decisions are made and supervisory Commands are sent to change conditions such as set points or to engage emergency procedures. The data from sensors and set commands to actuators are sent via wired or wireless communication channels. So, communication mechanisms are an integral part of any complex automated system. The SCADA software’s are the software packages and are not free and the cost depends on tag count.
Visual Basic 6.0 platform can be used to develop the SCADA application effectively. Using VB 6.0 a platform can be developed to integrate software and hardware across spectrum of vendors. Here, a simple approach is proposed; which takes care of the communication between Delta PLC and visual Basic using Modbus DLL (provided by Delta PLC). Visual Basic can serve as a cost effective solution since it is not necessary to purchase a licenses for a small scale application as well as it is cheaper than conventional SCADA packages.
I. Introduction
During the past decade, the industrial sector throughout the world has shifted from classical methods of control and Automation to the state of arts techniques. This allowed the industries to attain higher percentage of growth and production, which consequently gives rise to reduction in costs of the product .This trend of automation is gaining Automated systems use local control systems that utilize sensor information in feedback loops, process this information, and send it as control commands to actuators to be implemented & processed [2]. Such closed-loop feedback control is necessary because of the uncertainties in the knowledge of the process and in the environmental conditions. Feedback control systems rely heavily on the ability to receive sensor information and send commands using wired communications. PLCs have become favourite tools in the control
industry because of their simplicity, robustness, I/O interface and reliable performance SCADA as the name suggests is not a full control system but rather focuses on the supervisory level. As such, it is a purely software package that is positioned on top of hardware to which it is interfaced, in general via PLCs, or other commercial hardware modules. SCADA systems are nowadays employed in major industries of the world including Oil and Gas, Petroleum, Food, Textile and other industrial sectors. SCADA systems are developed by major companies which include Wonderware Inc, Siemens, Rockwell Automation, Intellution and GE.
However the prices they demand for their systems are discouraging the industries to switch towards automation [3].
industry because of their simplicity, robustness, I/O interface and reliable performance SCADA as the name suggests is not a full control system but rather focuses on the supervisory level. As such, it is a purely software package that is positioned on top of hardware to which it is interfaced, in general via PLCs, or other commercial hardware modules. SCADA systems are nowadays employed in major industries of the world including Oil and Gas, Petroleum, Food, Textile and other industrial sectors. SCADA systems are developed by major companies which include Wonderware Inc, Siemens, Rockwell Automation, Intellution and GE.
However the prices they demand for their systems are discouraging the industries to switch towards automation [3].
Visual Basic is tool provides platform to develop new optimum Windows or SCADA applications. Visual Basic can communicate with PLC with various ways. Visual Basic does not have code for communication protocol inbuilt. User need to write code for communication protocol or need to purchase ActiveX controls which are used to develop applications.[4]
II. Method of Interfacing
The primary goal of SCADA system is to assist the operator in running a machine and managing a process. A good SCADA system will increase the productivity of the operator and machine, increase uptime, and assist in providing consistent product quality. The required functionality of SCADA will vary based upon the type and complexity of product produced the type of machinery used, the skills of the operator, and the degree of automation of the machinery [3]. The types of functionality typically included are:
· Link between PLC and PC.
· Visual HMI
· Trending Real Time and Archived Data [3].
Delta DVP14SS comes with serial port and the communication protocol is serial Modbus protocol which is a open resource Modbus protocol. Visual Basic acts as a Modbus Master device which issues
request or commands (Query) on serial bus which is received by slave. PLC acts as a Modbus slave device and responds to the Master by sending massage called response. Modbus Query and
Response contains fields like device address, function code, data, and error check [6]. Figure 1 shows the system block diagram.
request or commands (Query) on serial bus which is received by slave. PLC acts as a Modbus slave device and responds to the Master by sending massage called response. Modbus Query and
Response contains fields like device address, function code, data, and error check [6]. Figure 1 shows the system block diagram.
In the previous work [4] is an effort to show simple approach to communicate Delta PLC with visual Basic using MSComm control for more effective and efficient process control. .This paper is an effort to design and evaluate the the other approach to communicate Delta PLC using Modbus.dll provided by Delta PLC manufactures. DMT Modbus Library is used for development industrial device that support Modbus format, based on Windows Winsock API (WSA). The software developer can import the library for implementing device’s communication via serial or ethernet. The MBDRV Communications Driver is a Windows Dynamic Link Library (DLL) that enables Windows programs to communicate with devices that understand the Modbus Protocol. The driver provides an easy way for the user to develop programs that access Modbus device’s points and registers.
Information is passed using standard variables in the user’s host language [5].
Information is passed using standard variables in the user’s host language [5].
The Modbus driver can be used with any language that supports calls to external DLLs, including C/C++ static/dynamic standard library, support Microsoft Visual C++ / Visual Basic, Borland C++ Builder, Sun Java J2SE,etc.[5] DMT Library provides functions with the following steps:
- Step1.Opening communication port
- Step 2. Data access input/output functions
- Step 3. Acquiring status functions if necessary
- Step 4.Closing communication port
DMT library provides various functions related to communication control, Data access & communication Status between PLC and PC. Communication control functions include creating Modbus serial connection & closing the serial connection .e.g.
Function used to create Serial connection:
int OpenModbusSerial(char *comport_name,
int baud_rate, int data_len, char parity, int stop_bits, int modbus_mode);
int baud_rate, int data_len, char parity, int stop_bits, int modbus_mode);
TABLE I
OpenModbusSerial Function Parameters [5]
Parameter
|
Value
|
comport_name
|
Comport name, e.g.
“COM1” |
baud_rate
|
Baud rate, e.g. 9600
|
data_len
|
Data length, e.g. 7
|
parity
|
Parity bit, e.g. ‘E’
|
stop_bits
|
Stop bit, e.g. 1
|
modbus_mode
|
Modbus
mode, 1 for Modbus/ASCII, 2 for Modbus/RTU |
OpenModbusSerial function then returns the value to indicate whether the connection is successful or not e.g.
TABLE II
OpenModbusSerial Function Returned Value [5]
Value returned
|
Example
|
-1
|
Serial
open failed |
Non zero
|
Serial open succeeded
|
Function used to close Serial connection:
void CloseSerial();
Closes the Serial connection.
Data access functions include sending request for Modbus data & receive responses from Modbus data.e.g.
Function used to send request for Modbus Data:
int RequestData(int slave_addr, int func_code, const unsigned char *data, int datalen);
TABLE III
RequestData Function Parameters [5]
Parameter
|
Value
|
station_addr
|
Station Address
|
func_code
|
Function Code
|
Data
|
Modbus Data
|
Data_len
|
Modbus Data Length’
|
RequestData function then returns the value to indicate whether the request sent is successful or not e.g.
TABLE IV
RequestData Function Returned Value [5]
Value returned
|
Example
|
-1
|
Send
data failed |
Non zero
|
Total number of bytes sent will be returned
|
Function used to recive response form Modbus Data:
int ResponseData(int *slave_addr, int *func_code, unsigned char *data);
TABLE V
ResponseData Function Parameters [5]
Parameter
|
Value
|
station_addr
|
Returned Station Address
|
func_code
|
Returned Function Code
|
Data
|
Modbus Data (If
error occurring, the Modbus Exception Code will returned) |
ResponseData function then returns the value to indicate whether the response sent is successful or not e.g.
TABLE VI
ResponseData Function Returned Value [5]
Value returned
|
Example
|
-1
|
Send
data failed |
Non zero
|
The Modbus
data byte count will be returned |
Communication status functions include acquiring the last serial error message & resetting the serial error message.e.g.
Function used to acquiring the last serial error message:
int GetLastSerialErr();
TABLE VII
GetLastSerialErr Function Returned Value[5]
Value
|
Message
|
0
|
No serial error
|
1
|
Invalid serial error code
|
2
|
Invalid baud rate
|
3
|
Buffer overflow error
|
4
|
Invalid character size
|
5
|
Invalid flow control
|
6
|
Cannot initialize serial device
|
7
|
Invalid initialization parameter
|
8
|
Cannot open serial device
|
9
|
Invalid parity
|
10
|
Serial device receive error
|
11
|
Invalid stop bit
|
12
|
Serial device transmit error
|
Function used to reset the last serial error message:
void ResetSerialErr();
Used to reset Last Serial Error
III. IMPLEMENTATION
DVP14SS series MPU support Modbus ASCII/RTU communication format with speed of up to 115,200bps. and modification on data length (data bits, parity bits, stop bits).Modbus communication format ,CRC calculation ,Modbus addressing for various internal devices of PLC are the key factor in the interface. Communication parameters for COM can be manipulated by writing ladder program. Here default protocol settings are used hence no need to alter PLC program. [4]
Following steps are implemented to obtain desired objective.
1. Add DMT.bas module file into project (Figure 2).
Figure 2 DMT.bas Module
In DMT.bas module all functions are declared and defined in Modbus.dll
2. Copy DMT.dll into project.
Copying the DMT.dll file into project directory.
3. Declaring the Win32 API
Used to find serial port List from registry and shown in GUI.
4. Declare variable parameters for communication port.
Following variables are declared.
Used to create Modbus protocol String to send command or request to PLC.
5. Assign Modbus data
Function code 5 forces single coil M207 (Modbus address 08CF) ON state (Data FF00) [1][6].
6. Converting Hex data to String
7. Open Communication
Opens communication port with 9600 baud rate, even parity, 1 stop bit.
8. Request Modbus Data
9. Receive Response
10. Close Communication.
IV. RESULTS
Using VB and DMT.dll customised SCADA is developed for application for Remote operated X-Ray Machine.
Figure 3 GUI for X-Ray Machine
In this GUI seven stepper motor movements are controlled in both auto & manual mode. Current & set positions of each motor are also displayed on the GUI. In DMT Modbus.dll user an read four Modbus data registers simultaneously. Current positions of Stepper motor is calculated by the encoders connected to each motor. Stepper motor status is shown with the help of indicators.GUI also displays the current position of Collimator .Collimator can be opened or closed remotely with the help of buttons shown on GUI.
V. Conclusions
Visual Basic with industrial connections can be an alternative to costly proprietary automation Software’s. The main idea was to interface Visual Basic and Delta PLC DVP14SS for more effective and efficient process control. This work evidences proper communication between two powerful technologies used in industries. Visual Basic provides a platform where new solutions or highly customized SCADA’s can be created with a richer experience than thos e that may be provided by standard SCADA offerings. By using Visual Basic that offers many advantages over SCADA packages as it comes free and not expensive. Also SCADA packages cost depend on
the tag count and runtime licenses needs to be purchased. Thus for OEM Visual Basic offers the optimum cost solution. The PLC- VB interface has been tested for several real time processes and can serve better for many applications in the industry.
the tag count and runtime licenses needs to be purchased. Thus for OEM Visual Basic offers the optimum cost solution. The PLC- VB interface has been tested for several real time processes and can serve better for many applications in the industry.
References
[1] “DVP PLC communication Protocol,” Delta Electronics Inc,www.delta.com.tw/industrialautomation (1998).
[2] Tahir Nizamuddin, Bilal Iqbal. “Design and Implementation of Locally Developed SCADA A Cost Effective Solution”. PCSIR, Institute of Industrial Electronics Engineering, (IIEE) Karachi 16(2010)
[3] Tieyi Zhang, Yun Zang, Xiaorong Zhou. “Development on Serial Communication between Panasonic Electrical PLC and Computer based on VB”. Guangxi University, Nanning , China. Applied Mechanics and Materials Vols, 170-173(2012)
[4] S.S.Bidwai, V.B.Kumbhar. “Real Time Automated Control using PLC-VB Communication” International Journal of Engineering Research and Applications (IJERA) Vol. 3,Issue 3, pp.658-661 (Jun 2013).
[5] “DMT library Manual,” Delta Electronics Inc, www.delta.com.tw/industrialautomation .
[6] “Modbus communication Manual” MTL 8000 process control for process I/O ,The MTL Instruments Group PLC, England