讨论

发那科取整指令用哪个,ROUND还是TRUNC来着

sfz1976
sfz1976
2026/05/25 07:27

手上有个小活,发那科机器人走点位的时候要把计算出来的坐标取整再往下传,不然后面那台视觉那边老报数据格式不对。翻手册翻半天没太整明白,ROUND和TRUNC这俩指令到底啥区别,现场调试等不了太久,有用过的直接说哪个能直接用、参数怎么填最快。

12 4

全部回复 (4)

吴宁
吴宁#1

直接用TRUNC[1, R[10]]就行,后面那个数填小数位数,0就是取整不带四舍五入。ROUND是四舍五入取整,如果视觉那边要的是直接砍掉小数部分,你就用TRUNC,R[10]换成你自己那个寄存器编号。跑TP程序的时候单步跟一下寄存器的值就清楚啥意思了,几分钟的事。

2026/05/25 12:15
jieh99
jieh99#2

取整之前先确认下你坐标的单位是mm还是带小数点的,要是mm本身就带一两位小数,取不取整差别不大,反而可能把定位精度搞坏了。建议先看眼视觉那边通讯协议到底要求啥格式,是整数还是带小数都能收,别上来就取整把活干反了。

2026/05/25 15:17
950720
950720#3

我这边一般是寄存器里存原始值,传输的时候再处理,R[10]=R[10]/10*10这种写法也能凑合取整,就是土办法。你那种多寄存器坐标的活,整段往子程序里塞,子程序开头统一TRUNC一下比较省事,后面调用就不用每个点位都改了。

2026/05/26 04:04
顺其自然
顺其自然#4

你视觉那边报的啥错?光说数据格式不对太模糊了,字符串还是数值、要不要补零对齐这些都得对清楚再改机器人程序,不然改完也是白改。

2026/05/26 04:35