LaserPING 2m Rangefinder
maria_noronha_costa
Posts: 11
Hi!
I have an automation project that requires a large number of sensors (up to 30). I pretend to use an S7-1200 CPU 1215C PLC and these distance sensors (https://www.parallax.com/product/28041). Is it possible to connect these sensors to the PLC? If so, where can I find more information about the serial communication protocol used? Could you recommend any modules to perform this connection?
And is it possible (or advantageous) to use the PWM output in this situation?
Also, since multiple sensors would be operating simultaneously and close to each other, is there any risk of occurring crosstalk? If so, how can I avoid interferences? Or how to compute the minimum distance at which I can place two sensors without having them interfering with each other?
Thank you in advance.
I have an automation project that requires a large number of sensors (up to 30). I pretend to use an S7-1200 CPU 1215C PLC and these distance sensors (https://www.parallax.com/product/28041). Is it possible to connect these sensors to the PLC? If so, where can I find more information about the serial communication protocol used? Could you recommend any modules to perform this connection?
And is it possible (or advantageous) to use the PWM output in this situation?
Also, since multiple sensors would be operating simultaneously and close to each other, is there any risk of occurring crosstalk? If so, how can I avoid interferences? Or how to compute the minimum distance at which I can place two sensors without having them interfering with each other?
Thank you in advance.
Comments
First of all welcome to the Forums. There is a PDF file available in the link to the Laser-Ping that gives all of the specifications for this product including the protocols for serial communications.
The question regarding proximity has two answers. The first is the firing sequence of the sensors and second is the distance from the sensor to the measured object. I would recommend using the PWM output for this application as it gives you control over when the sensor fires in the serial mode you have no control over this. Two sensors that are triggered at the same time must be far enough apart that the field of view does not overlap. The data sheet says the FOV is 55 degrees. With the PWM mode of operation, you can fire two sensors simultaneously when one can not see the return from the other. In the serial mode, you would be forced to physically place all of the sensors far enough apart so the signal from one could not interfere with another. I can not offer you any help regarding you processor choice. I hope this rambling reply can offer you some assistance.
Jim
All of the information for the laser ping is available on the page you posted a link to. Look at the bottom of the page.
If this were my project I would use one of the Propeller boards to interface the ping sensors to the PLC. This way you can translate the PWM or serial output to the protocol the PLC requires and you have help from the members of this forum if you run into problems.
It might be if the PLC can convert the pulse width to a numeric value.
They probably would interfere with each other if they were all triggered at or close to the same time. Using PWM would allow you to trigger each sensor in sequence to avoid interference. Placement may help avoid interference, but the results would depend on the geometry of the sensors and sample/area being measured.
Sorry, I never heard about propeller boards. Could you please recommend a propeller board? Where can I find more information about it?
I think I have two possible solutions. The first one consists of translating the PWM output to a voltage (0-10V) signal and then connect it to an analog I/O module. The second one (which I don't know if it's even possible) consists of having all sensors sharing the same serial bus and then using a serial communication board as an interface with the PLC.
I think S7-1200 doesn't support PWM inputs. I would need some conversion module to translate it into a voltage/current signal.
Thank you in advance!
https://www.parallax.com/product/32123
It could excite and read each of the sensors in quick succession and transmit the readings to your PLC via one serial bus. Pretty easy. Help is here on the forum and from great Parallax education material.
The Propeller board would then be programmed to convert the PWM inputs from the LaserPING modules to numeric values and send them over the serial link to the S7-1200 CPU 1215C PLC.
https://www.parallax.com/product/40000 - P8X32A QuickStart
https://www.parallax.com/product/32150 - Propeller Mini
https://www.parallax.com/product/32214 - Propeller ASC+
https://www.parallax.com/product/32810 - Propeller Project Board USB
https://www.parallax.com/product/32912 - Propeller Activity Board WX
https://www.parallax.com/product/32123 - Propeller FLiP microcontroller module
Thank you very much for your replies!
Is it possible to send the data via RS485 interface using the Modbus RTU protocol? Where can I find more information about the programming?
I already read the datasheets and guides for some of the products you recommend. However, I wasn't able to find information on how to deal with PWM inputs and how to generate serial signals. Could you please recommend any documentation/ guides?
Also, are propeller boards suitable for industrial applications (robustness is a critical requirement)?
Thank you in advance!
Everything you need for using the board (i'm assuming the Propeller Project Board USB) is available on the Parallax site. If you click on the "Store", then the "Shop" button, you will get a menu on the left. Select "Board", Propeller, and finally select the Propeller Project Board USB and you will end up on a page that has links to the Details, Downloads & Documentation, and Additional Resources you will need.
There are software "Objects" in the OBEX for serial I/O and PWM that you can download and use, although you may have to make some modifications to them.
So far I have not had a single board failure of in the field, and the earliest one I installed was in January 2012, so I have no qualms about the robustness and reliability of the Propeller boards.
PS - I will take a look in the OBEX for suitable PWM objects for your application later today and make suggestions in another post.
From the old PING))) Demo, the Spin code as follows. It uses the internal cnt (count) register to time the pulses to a resolution of 1µs. That's it. Your application would execute this code for laserPINGs on a succession of pins, then send the distance values to the PLC in the acceptable format. You will also find modbus specific code via a search on the OBEX. Here is a link to JohnnyMac's nice EIA-485 object.
Could you please recommend an RS485 driver IC? And could you explain why I need one?
Do I need a propeller board per sensor? I thought about connecting multiple sensors to the same propeller board. However, I would need long cables (up to 5 m) and, for what I read, PWM signals don't support long distances.
If I decide to use the RS485 interface, can I connect all propeller boards to the same bus? How can I set each propeller board address (to make sure they're different)?
Thank you in advance!
A single Propeller board can handle multiple sensors, and it may be worth trying some of the line drivers used for digital data transmission. The critical part of the PWM signal processing is the timing of the signal. As long as the time between the leading edge and following edge of the PWM pulse is maintained it should maintain accuracy. Simpler and less costly to connect many sensors to one Prop board.
Yes, that is generally how RS485 works. Typically the data is sent as serial data bytes of a standard format. If you use a Prop board for each sensor you will need to assign them individual ID's (an address).
Do you plan to have the Props process the readings or is that going to be done on a PC?
I understand what you're saying. So, I don't have to worry about cable length? (my sensors would be placed some meters apart from each other)
I am planning on having a PLC (S7-1200) processing the data. To achieve that, I also need an RS485 communication module (that's why I wanted to transmit data via an RS485 bus).
I would not go so far as to say you don't have to worry about cable length, but 5 meters should not be a problem. As long as the the cable is terminated properly and is not such a small diameter that it attenuates the signal too much. If this was my project I would first see if 20/22 gauge twisted pairs and RS485 drivers/receivers with 120 ohm resistors on the receiver end would work for sending the PWM signal from the laser ping to the Propeller pin. That reduces the the number of different parts required by 1
For example, if I'm using the Propeller FLiP microcontroller, what is the maximum number of PWM sensors I could connect to a single microcontroller? Is there any expansion module to increase this number?
Thank you in advance!
You will need at least one pin, and probably two for serial data (30, 31) as well as two for the eeprom (28, 29) that holds the code for the Propeller, which leaves 28 pins for PWM.
As far as additional inputs go, since you activate the pings sequentially you could use standard logic chips to multiplex groups of LaserPings, however it would probably be simpler to add a Propeller (or Propellers) if you need more than 28 inputs. How many LaserPings do you think you might need?
Probably, less than 28, so one propeller must be enough.
On the Propeller, the EIA485 connection requires either 2 or 3 pins:
-- rx and tx separately plus direction, 3 pins,
or,
-- rx/tx combined plus direction, 2 pins
The second option is possible because half duplex comms don't receive and transmit at the same time. Most '485 chips can be set up to do either option, but the firmware is a bit different.
In either case, the Propeller, and probably also the PLC, would be resting in receive mode. The master goes into transmit mode, sends an address and a command, whereupon the target propeller makes one or a number of measurements, and then goes into transmit mode long enough to send back the requested reading(s).
One very nice thing about the Propeller is that it has multiple COGs, one of which can constantly scan the sensors and process the readings, while another handles communication with the PLC. Data always immediately available. Processing of readings may be desireable for filtering or for calibration of zero and scale factors.