WSTP11A

From Waveshare Wiki
Revision as of 08:15, 12 January 2021 by Waveshare-eng11 (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
WSTP11A
WSTP11A

Industrial Unibody Temperature Transmitter, Stainless Steel Probe, RS485 Bus
{{{name2}}}

{{{name3}}}

{{{name4}}}

{{{name5}}}

Primary Attribute
Category:
{{{userDefinedInfo}}}: {{{userdefinedvalue}}}
Brand:
Website
International: Website
Chinese: 中文网站
Onboard Interfaces
Related Products

Industrial Unibody Temperature Transmitter, High Accuracy, Stainless Steel Probe, Water-Proof & Dust-Proof, RS485 Bus

Features

  • Digital output, via RS485 (standard Modbus-RTU protocol)
  • Wide range input voltage, non-linear correction, high accuracy
  • Small size, light weight, easy installation
  • Lightning-proof,cut-off frequency interference design, strong anti-interference capability
  • Reverse proof, over voltage protection, and current limited protection
  • Measurement accuracy up to 0.5% FS

Specification

  • Measured Medium:Liquid, gas
  • Accuracy: 0.5%FS
  • Full weight: 180g
  • Stability: ±0.1% FS/year
  • Measurement range: -50~100℃
  • Protection rating: IP65
  • Power supply: 12~36V DC
  • Ambient temperature: -40~85℃
  • Output signal: RS485 (standard Modbus-RTU protocol)
  • Ambient humidity:0%~95% RH(non-condensing, non-frosting)
  • Material:
    • Probe: 304 stainless steel (contacted)
    • Intermediate junction: 304 stainless steel (contacted)
    • Shell: 304 stainless steel
    • Hirschmann connector: ABS engineering plastics

Interface

Hesman interface
1 V+(12V~36V)
2 A
3 V-(GND)
4(Gnd.png) B

Communication Protocol

Modbus protocol is a universal language used in industrial electronic controllers. Modbus supports communication to and from multiple devices connected to the same cable or Ethernet network, it has become a standard communication protocol. With the Modbus, control equipment produced by different manufactures can be connected to the sam industrial network for centralized monitoring. The protocol defines a message structure, which can be recognized and used by the controller through any network. It describes the process of a controller requesting access to other devices, how to respond to requests from other devices, and how to detect and record errors. It has formulated a common format for the structure and content of the message domain.
Advantage of Modbus: (1)It is a standard protocol, open-sources, and free to use. (2)Modbus protocol support RS-232, RS-485 bus, and so on. (3)The format of Modbus is simple and easy to use.

Modbus parameters of WSSP08A (the device address is default 01)

This sensor is compatible with Modbus RTU. The RS485 port is half-duplex.
a) Output signal: RS485 (Communication distance is up to 1000m. Support multi-connect 32 devices)
b) Standard Modbus-RTU protocol (03: Read data; 06: Write setting data)<br /? c) Data format: 9600, N, 8, 1
d) Measure range: 0-X(MPa, kPa...)
e) Accuracy: 0.05%
f) Output data: 0...2000(range is customizable)
g) Response frequency: ≤5Hz
h) Response speed: ≥10ms

0x03: Read data (HEX)

WSSP08A format-1.png

Examples 1
Read sensor

The device address of 0-1.6Mpa sensor is 0x01, that is [Address]=01 (The Address range 01-254)
CRC0=84 and CRC1=0a, then the commands will be:
Command: 01 03 00 00 00 01 84 0A
Response: 01 03 02 02 AC B9 59
Convert 02AC to DEC, you will get the data 684;
Because the data range is 0-2000, related to the pressure range 0-1.6Mpa, the pressure read is P = 1.6*684/2000=0.5472MPa
The formula: (The maximum range - the minimum range) /2000 * Current data + minumin ranage = current pressure.

Examples 2
Read device address (This command only work for a single sensor)

Command: FF 03 00 0F 00 01 A1 D7
Response: FF 03 02 00 01 50 50
That is: The device address is 01

0x06: Write data (HEX)

WSSP08A format-2.png

Examples
Modify the device address from 01 to 09

Command: 01 06 00 0F 00 09 79 CF
Response: 01 06 00 0F 00 09 79 CD
The modification will be valid without a restart.

Connection

Pull out the terminal block which is inside the casing of the plug to connect the wire, wiring steps areas shown in the following figure.
WSSP08A connect-1.png

Wiring diagram

WSSP08A connect-2.png

We use 2-CH RS485 HAT(should purchase separately) and Raspberry Pi for testing. For more information about how to use the 2-CH RS485 HAT, you can refer to 2-CH RS485 HAT

Hardware connection

Hesman Connector
1 V+(12V~36V)
2 A(Change 2)
3 V-(GND)
4(Gnd.png) B(Change 2)


PIN Raspberry Pi(BCM) Description
VCC 5V 3.3V/5V
GND GND GND
SCLK P21(SPI1 SCLK) SPI clock input
MOSI P20(SPI1 MOSI) SPI Data input
MISO P19(SPI1 MISO) SPI Data Output
CS P18(SPI1 CS) SPI chip selection
IRQ P24 Inttrupt pin
EN1 P27 Channel 1(Channel 1) enable pin: High: Send enable; Low: Receive enable
EN2 P22 Channel 2(Channel 2) enable pin: High: Send enable; Low: Receive enable

Install Driver

  • Open a terminal and run the commands:
sudo nano /boot/config.txt
#Add the following lines to file. Note that the ini_pin should be same as the actual define.
dtoverlay=sc16is752-spi1,int_pin=24
#Reboot
sudo reboot

After reboot, The SC16IS752 drive is installed in kernel, you can check the device by command ls /dev:
2-CH-RS485-HAT-3.png
If the kernel version is 5.4 or obove, the gpiochip3 is recognized as gpiochip2

Install Libraries

  • Install wiringPi
sudo apt-get install wiringpi
cd /tmp
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# Check if it is 2.52 version
  • Install python2 libraries
sudo apt-get update
sudo apt-get install python-pip
sudo pip install RPi.GPIO
sudo apt-get install python-serial
sudo apt-get install python-crcmod
  • Install python3 libraries
sudo apt-get update
sudo apt-get install python3-pip
sudo pip3 install RPi.GPIO
sudo apt-get install python3-serial
sudo apt-get install python3-crcmod

Testing

  • Download and run the demo codes
sudo apt-get install p7zip-full
sudo wget https://www.waveshare.com/w/upload/1/14/WSTP11A_Code.7z
sudo 7z x WSTP11A_Code.7z
sudo chmod 777 -R WSTP11A_Code
cd WSTP11A_Code/
  • C example
cd c
make clean
make
sudo ./main
  • python example
#python2
cd python 
cd examples
sudo python main.py
#python3
cd python 
cd examples
sudo python3 main.py

About the Codes

  1. The demo codes are made for a situation that only one sensor is connected, it will read data according to the device address and it can be used to modify the device address.

WSTP11A run.png

  • C codes
#Read the device address (only one device is connected to RS485 bus)
uint8_t WSTP11A_get_addr(void)
#Modify the address of target device
uint8_t WSTP11A_set_addr(uint8_t o_addr, uint8_t n_addr)
#Read the data from target device
float WSTP11A_get_temp(uint8_t addr)
  • python codes
#Get 16CRC result
def crc16Add(self,read):
#Read the device address (only one device is connected to RS485 bus)
def get_addr(self):
#Read the data from target device
def get_temp(self,addr):
#Modify the address of target device
def set_addr(self,o_addr,s_addr):

Question:
Why the sensor doesn't output
Answer:
  • Reasons:
    • You doesn't power the sensor
    • The connection is wrong
  • Solution:
    • Correct6 the connection and check the power.


If you require technical support, please go to the Support page and open a tickets.