历史上的今天
返回首页

历史上的今天

今天是:2026年03月21日(星期六)

正在发生

2023年03月21日 | DOCK之profinet的对接快换耦合编程

2023-03-21 来源:机器人及PLC自动化应用

快换的Profinet对接使用方式

同一个设备可以在不同的上交替运行。为此必须使用其他的 IOCTL 功能进行解耦和。如果一个设备仅在一个机器人上运行,则也可以使用这些 IOCTL 功能。其他 IOCTL 功能只能为了兼容的原因而使用。

  • 在带有工具更换系统的应用中,绝不能将总线用户持久地耦合在上。
  • 在冷启动或在一个输入 / 输出端配置时,在该情况下这将直接导致工业以太网故障。
  • 关闭始终可用这一功能可以防止这些设备在冷启动后或者重新配置输入 /输出端后被逻辑耦合进工业以太网。
  • 这些已被停用的设备可以在以后程序运行时毫无问题地重新耦合进来。
  • 但是在项目设置时必须考虑到,将所有工具在物理和逻辑上集入进工业以太网项目。

解耦 --已解耦设备的属性:

若将已解耦的设备与工业以太网或者分离开,这不会触发故障。

在已解耦的设备上进行的所有 IO 操作都无效。

已解耦的设备不能对读 / 写故障进行处理。

解耦时设备的输入端已被归零。

耦合

IOCTL 函数是同步执行的。当设备重新可以使用并可写入时,该函数才返回。耦合的设备不可用时,例如因为它与总线或电源断开了,在超时 ( 默认 10 秒) 后显示一条提示信息。

  • 菜单路径:项目结构 > ProfiNet > 用鼠标双击 > 设备设定
  • 通过勾选将设备设置为始终可用或者取消此设置。

选项 “始终可用” 会影响机器人在冷启动或在重新配置 I/O 驱动程序时对于已解耦设备的反应。”始终可用”可在 WorkVisual 内的设备数据中设置。

如果设备没有勾选选项 始终可用,则设备在重启时或在重新配置 I/O 驱动程序时自动解耦。为了与设备建立连接,必须用 IOCTL 功能重新耦合设备。

通过 HMI 耦合和解耦现场总线用户

1.选择菜单序列显示 >  变量 >  单个。

2.2. 在 名称栏输入:

解耦时:

在一台机器人上使用该设备时:

=IOCTL("PNIO-CTRL",60,[ 用户识别号 ])

在一台或多台机器人上使用该设备时:

=IOCTL("PNIO-CTRL",1060,[ 用户识别号 ])

耦合时:

在一台机器人上使用该设备时:

=IOCTL("PNIO-CTRL",50,[ 用户识别号 ])

在一台或多台机器人上使用该设备时:

=IOCTL("PNIO-CTRL",1050,[ 用户识别号 ])

IOCTL :用于耦合和解耦的 系统变量

PNIO-CTRL :通过 ProfiNet 驱动程序名 调用

50/1050  = 调用耦合

60/1060  = 调用解耦

用户识别号 要耦合或解耦的模块的设备编号 /  用户识别号

在单个变量显示中,执行每个IOCTL 指令后,在当前值窗口内以数字的形式显示一个返还值。此数字有下列不同的含义:

l0 :IOCTL 已成功执行。

l1 :超时 — 设备未能在规定时间内耦合或解耦。

l2 :IOCTL 包含一个不正确的参数 — 请检查输入!

l-1 :故障 — 无法执行指令。

IOCTL 功能是同步执行的。当设备重新可以使用并可写入时,才能再次执行 IOCTL 功能。

若耦合的设备不可用,例如因为它与总线或电源断开了,则将在超时后显示一条信息。

若规定的用于耦合或解耦的时间设计得太短,可以重新设定超时。标准设置为 10 秒,即 10000 毫秒

RET = IOCTL("PNIO-CTRL",1001,10000)

询问设备状态:

用 IOCTL 函数 70 可以询问从属设备的状态。

RET = IOCTL("PNIO-CTRL",70,[ 用户 ID] )

RET 的返回值:

l4 :设备已解耦。

l5 :设备已耦合,但出现错误。

l6 :设备已耦合且无错误。

l7 :设备已解耦,但内部仍在 PROFINET Controller 中激活。

通过激活或停用总线故障

在默认情况下激活总线故障。如果出现总线故障,这会导致停止和/或锁定激活命令。借助 KRL 函数 IOCTL 可停用并再次激活总线故障。激活或停用可以在运行时于程序内通过 KRL 执行。 可为一个或多个总线实例停用总线故障。如果总线故障被停用,会有如下表现: • 总线故障:不停止和/或锁定激活命令 • 总线故障:smartHMI 信息窗口中没有故障信息 • smartHMI 信息窗口中会显示以下信息: KRC IO 总线错误抑制针对下列总线实例激活:{总线实例}{总线实例}{总线实例}

• 如果总线实例中已出现故障,则无法再次激活总线故障。

该情况下可通过系统变量 $IOBUS_INFO 读取是否出现总线故障。

• 为了停用总线故障: RET = IOCTL("KRC->PNIO-CTRL", 1, 1) • 为了激活总线故障: RET = IOCTL("KRC->PNIO-CTRL", 1, 0)

RET 用于保存 KRL 函数 IOCTL 返还值的变量。该变量的数据类型为 INT,在使用之前必须在程序中声明。
IOCTL 用于向总线驱动程序发送命令的 KRL 函数
PNIO-CTRL 总线驱动程序的名称
1、1 用于停用总线故障的 IOCTL 命令
1、0 用于激活总线故障的 IOCTL 命令

通过 KRL 重启总线系统

总线故障后,可在运行时在程序之内重启总线系统。为此,必须在程序中借助KRL 函数 IOCTL 一个重启总线系统的命令。

RET = IOCTL("PNIO-CTRL",12,0)

12 用于重启总线系统的 IOCTL 命令

ENDIF

ENDSWITCH

CASE 60  60断开

SWITCHDockBhf

CASE 'B000000'  -工具站上全是工具-头上在放工具

IF DOCK_SZ AND NOT DOCK_SP THEN-带2焊钳用2地址

SetIntNull(1)  设置软PLC归0

ENDIF

IF DOCK_SZ AND DOCK_SP THEN-带3焊钳

SetPlcIntNull(1)  设置软PLC归0

SetPlcIntNull(2) 

ENDIF

IF DOCK_NZ THEN  伺服铆钳带钉

SetPlcIntNull(4) 设置软PLC归0

SetPlcIntNull(5)

ENDIF

IF DOCK_CZ THEN  伺服铆钳无钉

SetPlcIntNull(6) 设置软PLC归0

SetPlcIntNull(7)

ENDIF

DEFAULT 工具站上在关网时没有到工具!则信息提示

SyncMoveMessage(8, #QuitMsg) 移动信息提示:”快换站:几个工具站没有被占用”

ENDSWITCH

Ret=ioctl("PNIO-CTRL",60,par1)-断开网络

DEFAULT  如果不是50和60

MLD(21,#QuitMsg);  提示信息P2设置错误

ENDSWITCH

SWITCH ret  接通关闭,反馈值

CASE0  ;

IF PAR2==50 THEN  ------接通

IF $OUT[O_R_Hand] THEN-A11机器人手动

MLD(90,#NofyMsg)   -"PNIO ilnehmer angedockt"提示90 PN设备连接上

ELSE

ENDIF

ENDIF

IF PAR2==60 THEN  ------断开

IF $OUT[O_R_Hand] THEN

MLD(91,#NotifyMsg) -"PNIO Teilnehmer abgedockt"提示91 PN设备断开

ELSE

ENDIF

ENDIF

CASE1  ;   ---连接超时

MLD(92,#QuitMsg) - "Timeout bei Docking"  快换头连接超时-

CASE2  ;

MLD(93,#QuitMsg)-"IOCTL falscher Paeter"  IOCTL 参数设置错误-

DEFAULT

ENDSWITCH   

ENDIF

;ENDFOLD

编辑:黄飞

 

推荐阅读

史海拾趣

HI Microwave Technology Limited公司的发展小趣事

HI Microwave深知质量是企业生存和发展的根本。因此,公司从原材料采购到成品出厂的每一个环节都严格把关,确保产品质量符合国际标准和客户要求。同时,公司还建立了完善的售后服务体系,为客户提供及时、专业的技术支持和解决方案。这种以客户为中心的服务理念赢得了客户的信任和忠诚,也为公司的持续发展奠定了坚实的基础。

Defense Logistics Agency公司的发展小趣事

在成功整合供应链之后,DLA开始拓展其业务领域。除了为美军提供后勤保障服务外,DLA还开始向各州、当地政府组织、外国政府和国际组织提供后勤保障服务。这一拓展不仅拓宽了DLA的业务范围,也增强了其国际影响力。

Analogic Corporation公司的发展小趣事

在全球化和信息化的大背景下,DLA面临着诸多挑战,如跨国采购的风险、网络安全威胁等。然而,DLA始终坚持创新驱动、持续发展的理念,通过加强国际合作、完善法律法规等方式积极应对挑战。同时,DLA还注重人才培养和团队建设,打造了一支高素质、专业化的后勤保障队伍。这些努力为DLA的持续发展提供了有力保障。

Genesis Microchip公司的发展小趣事

在20世纪中期,GI作为一家新兴的电子设备制造商,以其对新兴技术的敏锐洞察力和创新精神而崭露头角。公司创始人意识到半导体技术的巨大潜力,决定投入大量资源进行研发。通过不懈努力,GI成功推出了多款基于半导体技术的创新产品,如早期的晶体管收音机和电视机,这些产品不仅在当时市场上引起了轰动,也为公司后续的快速发展奠定了坚实基础。这一阶段的成功,标志着GI在电子行业技术创新的道路上迈出了坚实的一步。

佰鸿(BrtLed)公司的发展小趣事

面对市场的不断变化和技术的不断进步,佰鸿公司始终保持着敏锐的洞察力和应变能力。近年来,随着LED行业的竞争日益激烈,公司开始积极寻求转型升级之路。通过调整产品结构、优化生产流程、拓展市场渠道等措施,佰鸿成功实现了从传统LED制造商向综合解决方案提供商的转型。这一转型不仅提升了公司的盈利能力,也为其未来的发展注入了新的活力。

以上五个故事从不同角度展示了佰鸿(BrtLed)公司在电子行业中的发展历程和成就。通过坚持市场导向、扩大生产规模、深耕再生医学领域、坚持技术创新以及积极应对市场变化等措施,佰鸿成功地在激烈的市场竞争中脱颖而出,成为了电子行业的佼佼者。

CONTEC公司的发展小趣事

近年来,随着手持式脉搏血氧仪市场的不断扩大,CONTEC公司凭借其在医疗设备领域的技术积累和市场经验,成功切入该领域并取得了显著成绩。公司的手持式脉搏血氧仪产品凭借其高精度、稳定性和便捷性受到了市场的广泛认可。在全球手持式脉搏血氧仪市场规模持续增长的背景下,CONTEC公司凭借其技术优势和市场竞争力,不断拓展国内外市场,实现了快速发展。

请注意,以上故事仅基于公开信息整理,如需更详细和深入的了解,建议查阅相关行业报告或联系公司获取更准确的信息。同时,这些故事仅描述了CONTEC公司在不同发展阶段的一些重要事件和成就,并不代表其全部发展历程。

问答坊 | AI 解惑

122x32液晶1520控制器驱动程序

用C程序编写的一小段程序参考…

查看全部问答>

转:嵌入式系统关键技术分析 上

在当前数字信息技术和网络技术高速发展的后PC(Post-PC)时代,嵌入式系统已经广泛地渗透到科学研究、工程设计、军事技术、各类产业和商业文化艺术以及人们的日常生活等方方面面中。随着国内外各种嵌入式产品的进一步开发和推广,嵌入式技术越来越 ...…

查看全部问答>

编辑框的一点小问题

我在发帖时,光标在“所见即所得模式”里闪动,然后我用鼠标点开屏幕最底下的一个文件夹,后又点回电子工程世界编辑网页,可以看到光标仍在闪,但是输入文字却输不进去,还需要再点一下。…

查看全部问答>

TMS320F28023也可以跑在60MHZ?

我做了一个TMS320F28023片子的系统,基本上仿的USB的MiniStick的那个F28027的小板子。程序也用MiniStick套件的附带LED程序,只是在仿真器器件选择的时候是28023,然后也可以正常下载和运行,LED频率和28027的板子是一样的。不过片子有点烫。后来把D ...…

查看全部问答>

菜鸟求助!AT89C52怎样输出PWM波?

在下要用AT89c52做一个小车,要给舵机输出PWM波,可是网上说89C52好像没有PCA功能,那怎么给舵机输PWM呢? 在下菜鸟,多多包涵。。。;P ;P ;P…

查看全部问答>

求助:Wince如何快速重绘窗口

    请教下,现在有两个窗口,一个主窗口A,一个弹出窗口B,按下A窗口的按钮会弹出B窗口,现在的问题是,按下按钮时显示B窗口没问题,但是抬起按钮后隐藏B窗口的时候会将B覆盖A的那部分窗口重绘,重绘的那部分会瞬间变白然后再显示出A窗 ...…

查看全部问答>

上海站:嵌入式专业畅销书作者任侨伟、宋宝华老师专题讲座

上海站:嵌入式专业畅销书作者任侨伟、宋宝华老师专题讲座 Linux内核和设备驱动是嵌入式开发中非常重要的部分,学习方法和选择平台非常重要。为答谢广大读者一直以来的支持与鼓励,华清远见上海中心特举办“嵌入式专业畅销书作者任桥伟、宋宝华老 ...…

查看全部问答>

请教关于路径的几个宏的解释

$(_SYSGENOAKROOT)...指的是那个目录? 如:$(_SYSGENOAKROOT)\\lib\\$(_CPUINDPATH)\\ceddk.lib $(_COMMONSDKROOT)...指的是哪个目录? 如:$(_COMMONSDKROOT)\\lib\\$(_CPUINDPATH)\\coredll.lib \\ _ISVINCPATH=$(_WINCEROOT)\\public\\comm ...…

查看全部问答>

我们硬件板块是不是很穷呀!?

RT 一直都没看见我们这个板块有人散分的!…

查看全部问答>

DriverWork3.2的向导生成的程序在Visual c++ 2003下的编译问题

通过DriverWork3.2的向导DriverWork3.2生成的程序在Visual c++ 2003下的编译发现以下问题,郁闷中,有没有人帮我解决,问题如下: error LNK2001:unresolved external symbol@__securtity_check_cookie@4 error LNK2001:unresolved external symbol@_ ...…

查看全部问答>