Hello all,
I have a robot that is scanning using a time of flight sensor. The time of flight sensor switches a digital output when the object drops out of range. The sensor claims to switch at 2ms.
I have the sensor wired into an Allen Bradley Point IO module. The Point IO module is made up of three components:
1x 1734-AENT - Ethernet/IP Adapter, 1x 1734-IB4 - 4 Digital Inputs, and 1x 1734-OW4 - 4 relay outputs.
The Point IO Ethernet adapter is connected to the IRC5’s network using the integrated 3 port switch in the IRC5 CPU.
The configuration of the “Unit Type” of the Point IO module is as follows:
Type of Bus - Ethernet/IP
Vendor - Allen Bradley
Product Name - Point IO AENT
Internal Slave - NO
Device Type - 12
Product Code - 108
Vendor ID - 1
Input Connection Type - Multicast
Connection Priority - High
Request Packet Interval (ms) - 1
Configuration Assembly - 102
Configuration Size (bytes) - 0
Output Assembly - 100
Input Assembly - 101
Ownership - Exclusive
Input Size (bytes) - 9
Output Size (bytes) - 1
Quick Connect - Not used
The IO module works, and I can see the signals change, and I can turn outputs on and off.
The problem that I have is that while scanning at a speed of 200mm/s using the SearchL command, the “found” position is off by approximately 30mm.
It appears that the update rate of the IO is too slow. If I search at 25mm/s using the same logic, the “found” position is only off by approximately 2mm.
Considering the fact that the sensor switches at 2 ms, during that time (@200mm/s) I should only travel 0.4mm. Considering the RPI of the remote IO module should be 1ms, the max I should ever be out by is 0.6mm…
Am I missing something obvious here?
I checked the filter settings on the 1734-IB4. The setting is switchable for input filter time from 1ms to 65ms, but the default is 1, and I never changed it.
The robot is running RobotWare 5.15, and I’m using RobotStudio5.15.02