中国机器人网 App
手机扫码下载 · 或点击查看
手上有个小活,发那科机器人走点位的时候要把计算出来的坐标取整再往下传,不然后面那台视觉那边老报数据格式不对。翻手册翻半天没太整明白,ROUND和TRUNC这俩指令到底啥区别,现场调试等不了太久,有用过的直接说哪个能直接用、参数怎么填最快。
直接用TRUNC[1, R[10]]就行,后面那个数填小数位数,0就是取整不带四舍五入。ROUND是四舍五入取整,如果视觉那边要的是直接砍掉小数部分,你就用TRUNC,R[10]换成你自己那个寄存器编号。跑TP程序的时候单步跟一下寄存器的值就清楚啥意思了,几分钟的事。
取整之前先确认下你坐标的单位是mm还是带小数点的,要是mm本身就带一两位小数,取不取整差别不大,反而可能把定位精度搞坏了。建议先看眼视觉那边通讯协议到底要求啥格式,是整数还是带小数都能收,别上来就取整把活干反了。
我这边一般是寄存器里存原始值,传输的时候再处理,R[10]=R[10]/10*10这种写法也能凑合取整,就是土办法。你那种多寄存器坐标的活,整段往子程序里塞,子程序开头统一TRUNC一下比较省事,后面调用就不用每个点位都改了。
你视觉那边报的啥错?光说数据格式不对太模糊了,字符串还是数值、要不要补零对齐这些都得对清楚再改机器人程序,不然改完也是白改。