Award
Congratulations DJ Sures, for answering the question and has received an EZ-Credit award! Share what you have learned and create a tutorial to help others by clicking here.

A Variable Range

Assistance Requested

Help Andy Roid with their question and receive $10 of EZ-Credit to get more robots and parts from our store. The following information was provided about their previous efforts searching tutorials for a resolution.

Andy Roid claims to have checked these sources:
 
#1

I cannot get a variable range function to work.

[:loop
sleep(1000)
#get compass value
print($CompassHeading)
sleep(1000)

if ($CompassHeading = 145)

Print("Left") # this will actually be a GoTo to allow a motor speed trim value
# to be added or subtracted to the correct motor to get back on
#heading
endif
Goto(loop)]

I don't see any range examples in the If function list.

My actual script trims the heading. I will compare the current heading to an allowable value. if the value is within the limit it goes straight. If the deviation is more than or less than the acceptable limit values, it will add or subtract speed to the correct motor to return to the heading.

I have found a few conversations, tutorials and activities that may help with your question. Take a look at these links. I've sorted them by what I believe to be most relevant but that is not always the case as I'm still learning.


Also, consider reviewing the Learn section for informative lessons and activities. Check it out!


#2

In the future, it will be easier to read if you place your code within [ code ] and [/ code ] tags (without the spaces)

Here's a screenshot of the UBB Code legend that's exactly to the right of the input form where you typed the message.

User-inserted image

As for what i think you're asking, is to determine if a number is between two values? If so, the EZ-Script manual is the RIGHT of the code editor. The IF condition manual states this...

User-inserted image

Here is an example that applies to your question...

Code:


IF ($compassHeading >= 145 and $compassHeading <= 190)
print("The compass is heading between 145 and 190")
ENDIF



You may wish to try Blockly (by pressing F9 or selecting the Blockly WORKSPACE from the TOP MENU). Blockly will help you create conditions and learn programming logic.

Here's a snapshot of the same code done in Blockly
User-inserted image

Here is a Blockly workspace example that you can load and try for yourself:CompassDirection.ezblockly

Load the example into Blockly by pressing the LOAD WORKSPACE button.

User-inserted image

#3

That answers the question. In PLC logic was a simplified Range function which I used a lot.

The new Blockly will help me get on track.

Yeah I screwed up loading the code example, but your reminder jogged the memory.

Thanks for the help.

Ron