Tags - ResgreenGroup/Botway-Documentation GitHub Wiki
Current Location: Home->Customizing BotWay->Tags
Tags in BotWay represent physical or virtual location markers that Robots can arrive at. Physical Tags are usually RFID tags placed along the magnetic tape track used by AGVs. RFID tags are typically limited to 16 ASCII characters for their label since the RFID tag stores its ID in memory. Virtual Tags are used by AMRs that know their physical location at all times. AMRs are given Goal Waypoints and report arriving at a Tag at each Waypoint in a Route. AGVs like PullBuddies do not use goal waypoints. Either way, Tags are the building blocks of a Route and let BotWay know the location of a Robot.
The user must be signed in as Admin to edit.
-
In the Toolbar of the Map Display, click on the "Edit Tags" button.
-
The user must supply labels for the tags to be added to the dialogue window that appears; they can be entered one at a time or the user can add multiple tags separated by spaces, new lines, or commas. Next, click "Add." The new tags will appear in the top left corner of the map display and can immediately be moved to their destinations.
-
Tags are locked in place unless the "Move Tag" checkbox in the Toolbar is checked. Once the box is checked, which can be done by a mouse click or with the alt key, move the tags to the location on the map that corresponds with their physical location in the working environment. The location of a tag's label can be changed by right clicking it; this will cause the label to rotate clockwise about the tag. Holding "Shift" while doing this rotates the text counterclockwise instead.
-
Click the "Save" button in the map display toolbar to finalize any changes.
-
Tags that the user has created can be placed in the tag dock. The tag dock is a holding area for tags that the user wants to keep but does not want visible on the map display. Open the tag dock by clicking the "Show Dock" box in the map display toolbar. Then, left click on the tag or tags to dock, then click the "Dock" button at the top of the tag dock.
-
Tags can be returned to the map from the tag dock by selecting the tag or tags in the dock to return, then clicking the "Undock" button.
-
Tags can be removed by clicking the "Edit Tags" button, supplying the IDs of the tags to be deleted, then clicking "Remove." This works on docked and undocked tags.
Image: Edit tag window with sample Tag IDs supplied.
![](https://private-user-images.githubusercontent.com/138793687/264097559-227c7590-0ec0-488e-a2f7-f422f24754f8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyODc0NzcsIm5iZiI6MTczOTI4NzE3NywicGF0aCI6Ii8xMzg3OTM2ODcvMjY0MDk3NTU5LTIyN2M3NTkwLTBlYzAtNDg4ZS1hMmY3LWY0MjJmMjQ3NTRmOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQxNTE5MzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hOGVkMTJkZDgyMmNlMzI4M2NmZGRjOGY3NDUwMTQ5OTZhZjcyZTVjMDA5YTA3NzgzZjVjOTRlYmUxN2I4NGNjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.cqk8w0YOYp5Z8XgK6uVHDvmM3RFJXWwTNC3yTay5cY4)
Image: Tag Dock Revealed (Show Dock toggle is selected and dock is on the left side of the display.)
Routes are created in BotWay's route editor or the routeData.xml file in BotWay's "Data" folder. Routes are made up of a sequence of tags. Each tag added to a route is assigned one or more commands. When a robot reaches a tag, it reports the tag number and its route number to BotWay. BotWay looks through all created routes, then sends the appropriate command to the robot. Tags can be set to have multiple commands assigned to them on a single route, but they will all be run together in a group. The user can add a time delay to the command in the "Delay" column of the route editor; this will make BotWay wait a certain amount of time before sending its new instructions and is usually used when coupling to or decoupling from an LHF.
![](https://private-user-images.githubusercontent.com/138793687/264112086-133ecd42-40ee-4690-8bc7-7eab9c692868.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyODc0NzcsIm5iZiI6MTczOTI4NzE3NywicGF0aCI6Ii8xMzg3OTM2ODcvMjY0MTEyMDg2LTEzM2VjZDQyLTQwZWUtNDY5MC04YmM3LTdlYWI5YzY5Mjg2OC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQxNTE5MzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zMzllNzY3YTY3NGQ3YTM3YjQwODQxYjg5ODRlMGU4OTljMGNkZDhmOGU0YTEyM2U0OGU2YWI3NDVlYWYxNzI5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.QOjZW-g8QtfG43A-LCrdO-LKgZ5ot52O5ZqRACxiOk0)
Image: BotWay Built -in Route Editor.
BotWay sends the same command every time for each route and tag combination. If the user wishes to issue a different command at a tag, then that command needs to be on a different route. For example, if the user wanted a PullBuddy to turn left into a staging area after reading tag 100, pick up a full cart at tag 200, and then exit back the way it came over tag 100, then the user would need multiple routes to make that happen. In the case where the user only used one route, the robot would read tag 100 the first time, proceed into the staging area, come back to read tag 100 again, then get redirected into the staging area again because the command sent to the robot is still the same one that sent it into the staging area. The user would need to use the "Jump" column in the route editor to tell the robot to jump to a new route at tag 200. The new route would be able to send a different command the second time the robot passed over tag 100.
Furthermore, there is a "Robot" column in the route editor. This allows the user to send different commands to different robots at the same tag. Robots will only receive commands if the command is associated with the right client type. For example, tag 300 has a command to turn right for a PullBuddy and a command to turn left for a BigBuddy. PullBuddy will never turn left on this route because the command associated with turning left is reserved for BigBuddy robots only.
The user can use edit mode to turn tags into traffic stops. Traffic stops are implemented to facilitate operations by reducing the frequency of bumper stops and collisions. The instructions to make a traffic stop can be found on the Traffic Page. Traffic stops possess a list of tags that have right-of-way over them called a locklist. If Tags 400, 450, and 500 are in the locklist of tag 350, then robots who arrive at tag 350 will wait until BotWay checks that tags 400, 450, and 500 are all vacant before allowing the robot at tag 350 to proceed. For traffic stops to function, they need to have "Hold"(H) as the action part of their command in the route table.
![](https://private-user-images.githubusercontent.com/138793687/264117031-b42224cf-84b0-45b3-986a-61f47f205204.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyODc0NzcsIm5iZiI6MTczOTI4NzE3NywicGF0aCI6Ii8xMzg3OTM2ODcvMjY0MTE3MDMxLWI0MjIyNGNmLTg0YjAtNDViMy05ODZhLTYxZjQ3ZjIwNTIwNC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQxNTE5MzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01NTA0NTcxOWYxODEwNzQ2OGQyNzVmNjRkZDJhZDUwNzk3OWQ1ODAxMDIwY2NlZjJiMGEzZGEzZThmOTE0OTI3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.IuGPH3_gdbYaLk8sMDcQoHlERWF1gAA_xkWLrLvUNtk)
Image: Example Traffic Stop. Tags in Blue are in the Locklist of the Traffic stop, shown in red.
Tags can be used to distribute jobs to robots by turning the tag into a station. Stations are special tags that are associated with a job queue in the jobData.xml file in BotWay's "Data" folder. For precise instructions on setting up job queues in BotWay, visit the Job Queue page. When a job is in a job queue, BotWay will dispense that job to a robot that arrives at any of the queue's stations. The inclusivity of a job determines if and when a robot takes a job: concurrent jobs are taken immediately, consecutive jobs are only taken when the job above them is completed, and exclusive jobs are only allowed to have two jobs in the queue at any time: one running and one queued. When a robot takes a job, the job can then turn "active" and the robot immediately sets out to complete it, or the job can be "staged" and the robot will wait for an external stimulus to begin the job. Jobs have an end tag and end route; when a robot passes the end tag of a job while on the end route, the job will have its status changed to whatever the user specified in the "Status at end" field of the job add stage. When a job that that a robot is doing is set to "completed," then the robot will embark on the return route specified by the station from where it took the job.
![](https://private-user-images.githubusercontent.com/138793687/264134571-dd8ede3e-df5b-481e-a132-91926549586e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyODc0NzcsIm5iZiI6MTczOTI4NzE3NywicGF0aCI6Ii8xMzg3OTM2ODcvMjY0MTM0NTcxLWRkOGVkZTNlLWRmNWItNDgxZS1hMTMyLTkxOTI2NTQ5NTg2ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQxNTE5MzdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iY2ZkMDM5NzQyNjRmOGE2NWZiZDgyZTYzMTZkODk3NDZlNWE1NDI0ZGJjMjBhNGFiMmEzMjQxN2NmOGIzNGFlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.LaWndkX07jyEKi14ebSwCTiSTzY0o5l2Yl6HDR4QTuE)
Image: JobData.xml file detailing creation of a station. Tag specifies the Tag that will be authorized to distribute jobs from the queue associated with the station.