ABB
来源:互联网 发布:淘宝店铺做淘客 编辑:程序博客网 时间:2024/05/02 02:00
I am trying to setup some worldzones to avoid our system from colliding with an overhead crane.
WzLimSupTemp,wzCranePark1,sCranePark1;
mattdavis2010-02-24 04:20:43
I have two park locations for the crane with sensors wired to digital inputs to the robot that tell when the crane is in one of those locations (diCranePark1, diCranePark2)
when the crane is in either of these park locations i define worldzone and apply the limit to stop the robot from entering this area, when the crane is in neither of these locations i apply a larger wordzone limit as i dont know where the crane is. I then made some interupts and traps that enable or disable the correct zones.
WzFreewzCranePark1;
WzFreewzCranePark2;
WzFreewzCranePark3;
WzLimJointDefInside,sCranePark1,jCranePark1_low,jCranePark1_high;
WzLimJointDefInside,sCranePark2,jCranePark2_low,jCranePark2_high;
WzLimJointDefInside,sCranePark3,jCranePark3_low,jCranePark3_high;
WzLimJointDefInside,sCranePark2,jCranePark2_low,jCranePark2_high;
WzLimJointDefInside,sCranePark3,jCranePark3_low,jCranePark3_high;
WzLimSupTemp,wzCranePark1,sCranePark1;
WzLimSupTemp,wzCranePark2,sCranePark2;
WzLimSupTemp,wzCranePark3,sCranePark3;
WzDisablewzCranePark1;
WzDisablewzCranePark2;
WzDisablewzCranePark3;
IFdiCranePark1=1 THEN
WzEnablewzCranePark1;
ELSEIFdiCranePark2=1 THEN
WzEnablewzCranePark2;
ELSE
WzEnablewzCranePark3;
WzEnablewzCranePark3;
ENDIF
CONNECTintCranePark1WITH trpCranePark1;
ISignalDIdiCranePark1,edge,intCranePark1;
CONNECTintCranePark2WITH trpCranePark2;
ISignalDIdiCranePark2,edge,intCranePark2;
Now I have 2 problems with this solution.
1. The interupts only work whilst the robot is running, is there a better way to enable/disable the worldzone limits that would work whilst the robot was not running.
2. The worldzones all get wiped when we reset the program pointer to main or load a new program (which is something we do every time we run a program on the robot). I tested it with wzstationary instead of wztemporary and then I cant use wzenable / wzdisable.
Any ideas on how to do this?
mattdavis2010-02-24 04:20:43
Comments
- mattdavisAustraliaFebruary 2010found most of a solution.set all the zones to WZDOSet instead of WZLimSup and used cross connections with the diCraneParks to tell if the machine should stop and the cross connected this with a system input to quickstop the system.this only works in auto mode as quickstop is ignored in manual (and also silently stops the system with no error message at all)is there a way around these two problems?
- j_proulxUnited States✭✭February 2010Hello Matt,1. The interupts only work whilst the robot is running, is there a better way to enable/disable the worldzone limits that would work whilst the robot was not running.The ISignalDI has a switch called SingleSafe which will log your interrupt while the robot program is stopped.
[ SingleSafe ]
Data type: switch
Specifies that the interrupt is single and safe. For definition of single, see description ofSingleargument. A safe interrupt can not be put in sleep with instructionISleep. The safe interrupt event will be queued at program stop and stepwise execution, and when starting in continious mode again, the interrupt will be executed. The only time a safe interrupt will be thrown is when the interrupt queue is full. Then an error will be reported. The interrupt will not survive program reset, e.g. PP to main.2. The worldzones all get wiped when we reset the program pointer to main or load a new program (which is something we do every time we run a program on the robot). I tested it with wzstationary instead of wztemporary and then I cant use wzenable / wzdisable.You may want to try a START Event Routine. Event Routines are a Controller system parameter
Start : Execution is started from the beginning of the program. This is when you pressthe start or step buttons after having:
?_? loaded a new program or a new module?_? ordered Start from beginning
?_? ordered Debug/Move PP to Main
?_? ordered Debug/Move PP to Routine
?_? moved the program pointer in such a way that the execution order is lost
BR / Jim Proulx - mattdavisAustraliaMarch 2010Have got a little bit further with this.It works properly in auto mode using stationary zones triggering simulated outputs, with these outputs cross connected with the real zone enable/disable signals to trigger the system input quickstop.I then added an event routine to run on quickstop that would inform the operator what the problem was, all of these keeps working after a new program is loaded as its setup in the power on event routine.The only issue is when you are jogging the robot manually if you approach the world zone you are not meant to go in the robot does stop moving, but doesn't run the quickstop event. If you then just let go of enabling device and press it again the robot will happily jog into the zone that it shouldn't. This is not a huge problem as the robot stopping should give the operator a bit of an idea that they should look if there going to hit something, but a message on the screen would be nice.
0 0
- ABB
- ABB变频器
- ABB启动器
- ABB接触器
- ABB 配置文件
- ABB EPS
- 瑞典ABB之行
- ABB的E开关
- ABB-VD4 一级代理
- ABB变频器ACS800一级代理
- ABB E开关一级代理
- ABB E开关一级代理
- ABB RAPID SOCKET编程
- ABB机器人之LOADDATA
- Socket for ABB
- ABB开发学习笔记
- ABB RobotStudio(abb机器人仿真软件)下载 v6.0.2
- MY ABB暑假实习报告
- Hibernate中Session缓存
- hadoop2.4.0 安装手记之(一)虚拟机下linux静态ip配置
- getHibernatetemplate() 和 session
- code sign中no identities from Profile的解决方法
- Android开发 解决AlertDialog中的EditText无法调出输入法的问题 .
- ABB
- 解决Cannot change version of project facet Dynamic web module to 2.5
- 【UVA】12186-Another Crisis(动态规划)
- 图形点扫描解析
- —int64
- hdu 4902 Nice boat
- Centos6.4 用rpm方式安装MySql5.6
- VS 附加到进程调试技巧
- 使用achartengine 实现简单静态、动态折线图