Technical Support

{{ post.title }} 글 편집 글 편집 (이전 에디터) Author {{ post.author.name }} Posted on

Version {{ post.target_version }} Product
{{ product.name }}
Tutorial/Manual {{ post.manual_title }} Attached File {{ post.file.upload_filename }}

The motion which is effective after 2 seconds can be implemented easily by using the IF function.

For example, if you use a function, IF(time-2:0,0, (time-2)*100) as a motion of the translational joint,
it is still until 2 seconds and (time-2)*100 is applied from 2 seconds (0 at 2 seconds, 100 at 3 seconds, 200 at 4 seconds)

 

But what if you need a motion that takes 2 seconds before starting moving after a certain condition met?
If you use CoLink, then you can easily implement it with the Signal Chart of CoLink.

But what if you don’t use CoLink?
In this case, you can use ‘Sensor’.
Laser Sensor is triggered when a specified body (geometry) is within a certain sensor range.

LaserSensor-icon2

An expression function, SENSORONTIME(…) returns the time to when the sensor is triggered.
So now we can utilize this function.

Please read the following explanation first, then review the attached model.
  1. If a specified condition meets, move a dummy body to a location within the sensor range.
  2. Then SENSORONTIME will return the time when the condition meets.
  3. Then use SENSORTIME(…) like the functions below.
    1. SENSOR(LaserSensor1)*(time > (2+SENSORONTIME(LaserSensor1)))*(time – (2+SENSORONTIME(LaserSensor1)) )*100
    2. SENSOR(LaserSensor1): returns 1 if the sensor is triggered, or returns 0.
    3. (time > (2+SENSORONTIME(LaserSensor1)): returns 1 after 2 seconds of triggered time, or returns 0.
    4. (time – (2+SENSORONTIME(LaserSensor1)) )*100: The expression you desire to apply as a motion.

Description of attached model.
The target is t0 implement the function expression to make Body_Driven to the right side 2 seconds later after Body_Condition rotates more then 1 rad.
  1. Create a Dummy body. When Body_Condition rotates 1 rad, move it to the location where it is within the sensor range of ‘LaserSensor1’
  2. Since displacement, Angle functions such as DX(1, 2) cannot be used in Motion, use the variable equation (VE1) instead.
  3. Make a function expression with the SENSORONTIME(LaserSensor1) for the motion to move Body_Driven
    1. SENSORONTIME(LaserSensor1) returns the time when the sensor is triggered (when the Body_Condition rotates 1 rad)

 Conditional_Motion