西门子S7-1200与FUNUC机器人MODBUS TCP通信

news/2024/11/27 19:20:30/

PLC与机器人MB通信时,funuc作为服务器端,1200作为客户端。1200向funuc发送读写请求,funuc应答后PLC接收funuc的数据,实现数据的传递。

注意:Modbus不能同步进行通信,主机在同一时间内只能向一个从机发送请求,总线上每次只有一个数据进行传输,即主机发送,从机应答,主机不发送,总线上就没有数据通信。从机不会自己发送消息给主站,只能回复从主机发送的消息请求

一、机器人端设置

1、硬件连接,此处我用的事端口1

IP设置:MENU-设置-设置2-主机通讯,选择TCP/IP设置

 在此界面可以设置FUNUC的IP,以及固定要连接的PLC的IP,防止未授权的主机连接机器人。

端口设置:MENU-下一页-系统-变量进入MODBUSTCP设置,在PORT参数中修改端口号

 

2、PLC要读写的机器人的寄存器数值设定:此设定值要大于PLC要读写的存储器数量

MENU-IO-MODBUS TCP进入,此处可以设置MODBUS TCP 通信参数

比如我要写UI【1】-UI【20】需要3个16位存储器,还要写6个GI存储器,此处输入字数位4就显然不够了 可以设大一点

 

 3、机器人存储器分配:MODBUS TCP通信时机器人机架号固定为96,槽位号为1

UO需要两个存储器 对应的MB地址位40001-40002

UI需要两个存储器 对应的MB地址位40003-40004

GI需要6个存储器 对应的MB地址位40005-40010

 

 

二、PLC端设置 

1、PLC 的IP应与机器人处于同一IP段,在PLC属性里可以设置其IP

2、 PLC读写机器人数据需调用MB_CLIENT指令,位置在指令-通信-其它中可找到

 MB块CONNECT的参数如图所示

 此处需注意的是每一个从机连接的ID是唯一的 不同的从机或者PLC还需要做服务器时ID不能相同,且PLC做服务器端时,CONNECT参数中设置的目标客户端的IP既可以是客户端的IP也可以全设为0,但是端口一定是目标客户端的端口。

 

 3、MODBUS TCP功能码如下图所示,可在博途的系统帮助中找到

PLC读写FUNUC数据时主要是以下几个方面:

①PLC读取FUNUC UO【1】-UO【18】状态:用的是MODBUS通信中04功能码, MB块MB_MODE参数设置为0,MB_DATA_ADDR参数为30001此处不能为40001

 ②PLC读取FUNUC UI【1】-UI【20】状态:用的是MODBUS通信中03功能码, MB块MB_MODE参数设置为0,MB_DATA_ADDR参数为40003

 ③PLC写FUNUC UI【1】-UI【20】状态:用的是MODBUS通信中16功能码, MB块MB_MODE参数设置为1,MB_DATA_ADDR参数为40003

④PLC向机器人传递坐标值,我用的是FUNUC的GI存储器存储PLC传送的坐标值:用的是MODBUS通信中16功能码, MB块MB_MODE参数设置为1,MB_DATA_ADDR参数为40005

由于FUNUC 每一个GI存储器最大是16位而不是32位存储器,所以PLC如果向FUNUC发送实数坐标时,应把整数和小数部分转化为整数(乘以10的N次方,N为小数位数),传递给FUNUC两个GI存储器,FUNUC接收坐标数据后再在程序中转化为一个实数

 

注意:由于FUNUC端口号唯一,因此PLC对机器人进行多通信请求的时候(以上4个每一个都可以作为一个通信请求)必须采用轮询的方式: 此处我调用了多个MB块,以“DONE”为读写数据的完成标志位,一个块完成后再启动下一个块。不用固定存取器存储MB_DATA_ADDR等参数,调用一个MB块,赋值给这些存储器而是采用多个块的原因是跑程序时发现“DONE”信号触发传递MB_DATA_ADDR等参数后经常出现端口冲突的报警,而采用SCL编程没有这个问题,具体原因有知道的大神还请告知


http://www.ppmy.cn/news/824523.html

相关文章

天翎MyApps低代码平台案例分享—百川信保安服务综合管理系统

项目背景:百川信(北京)信息服务有限公司(以下简称“百川信”)成立于2014年,是一家专注于为安保行业提供高效、全场景、智能化协同办公管理与服务的科技公司。作为国内领先的数字安保解决方案与应用服务提供…

什么是程序员亲手制造的,你却找不到

博主:爱码叔 个人博客站点: www.icodebook.com 公众号:漫话软件设计 微博:程序员涛哥 专注于软件设计与架构、技术管理。擅长用通俗易懂的语言讲解技术。对技术管理工作有自己的一定见解。文章会第一时间首发在个站上,…

2.《你当像鸟飞往你的山》外面有一个世界:去读书吧,你会像鸟飞往你的山!...

2.《你当像鸟飞往你的山》外面有一个世界:去读书吧,你会像鸟飞往你的山! 我们中国的老百姓,都晓得读书特别重要的道理。但是,一般都是家长这么觉得,很多小孩是不喜欢读书和上学的。 但是,当事情…

Python语句求一个正整数的全部约数

约数&#xff0c;又称因数。整数a除以整数b(b≠0) 除得的商正好是整数而没有余数&#xff0c;我们就说a能被b整除&#xff0c;或b能整除a。a称为b的倍数&#xff0c;b称为a的约数。 n int(input("请输入整数&#xff1a;")) i 1 list_yueshu [] while i < n:i…

Python中使列表嵌套变成一个列表

将子列表的所有元素提取出来&#xff0c;并生成一个包含所有元素且没有子列表的新列表&#xff1a; T [[1, 2], [3, 4, 5]] T sum(T, [])#结果 T [1, 2, 3, 4, 5]

高冷一字id_一个字的网名 高冷一字id

一个字的网名&#xff1f; 瑶、女、里尼、暖、品、艳、喜、韵、玉、九、年、寿、真、奎、段、智、耻、清、气、阴、古、吉、甲等&#xff0c;月、都、蜀、雍、思、奈、文、燕、毛、车、西、花、旦、洁、颓废、酒、景、廉、通、浅、盲、赞、宣、梦、悟、研、简猫、莫、蒽、诺、祭…

高冷一字id_一个字网名 高冷一字id

一个字的网名&#xff1f; 瑶、女、里尼、暖、品、艳、喜、韵、玉、九、年、寿、真、奎、段、智、耻、清、气、阴、古、吉、甲等&#xff0c;月、都、蜀、雍、思、奈、文、燕、毛、车、西、花、旦、洁、颓废、酒、景、廉、通、浅、盲、赞、宣、梦、悟、研、简猫、莫、蒽、诺、祭…

使用Blender创造一个Low Polygon 插画

原文链接 &#xff1a;Secrets to Creating Low Poly Illustrations in Blender 近年来&#xff0c;Low Poly 风格的插画越来越流行&#xff0c;不管是在书本&#xff0c;漫画&#xff0c;音乐剧&#xff0c;应用等等。今天你将学会如何使用Blender创建一个Low Poly的插画。这篇…