0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CM CANopenS7-1200 PLC的CANopen主站/从站模块

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2022-06-13 10:59 次阅读

AGV小车的基础控制

ed3e4b7e-ea63-11ec-ba43-dac502259ad0.png

HMS Industrial Networks 的 CM CANopen 模块与 Siemens 的 S7-1200 PLCTIA Portal 配置示例。在此示例中,使用了 1214C 类型的 CPU,但该示例也可以应用于所有其他 PLC 类型。要运行此示例,必须已安装可从 https://www.ixxat.com/technical-support/resources/downloads-and-documentation?ordercode=021620-B下载的 HSP 文件。

ed5459c8-ea63-11ec-ba43-dac502259ad0.png

CANopen网络连接:

分别对应连接CM模块和LXM28A伺服的CAN_H、CAN_L和SHLD引脚,在CM模块CAN_H和CAN_L之间接入120欧姆电阻,并且在CANopen网络中最后一台设备CAN_H和CAN_L之间接入120欧姆电阻。

打开 TIA Portal 程序并通过单击屏幕左侧的“创建新项目”开始一个新项目。

ed88c3e8-ea63-11ec-ba43-dac502259ad0.png

2. 输入项目名称和项目存储路径,可选择包含作者和描述性注释等信息。按“创建”。

eda08546-ea63-11ec-ba43-dac502259ad0.png

3. 选择左侧的“设备和网络”,然后按“添加新设备”。

edb75d0c-ea63-11ec-ba43-dac502259ad0.png

4. 选择配置中使用的 PLC 类型。选择正确的软件版本并可选择输入 PLC 的名称(默认 PLC_1)。按“添加”。

edc6b5c2-ea63-11ec-ba43-dac502259ad0.png

5. 如图所示,在列表中选择CM CANopen模块。将模块的一个实例拖放到 PLC 模块的左侧。

edd9fdd0-ea63-11ec-ba43-dac502259ad0.png

6. 双击 PLC 上的以太网连接器并为 PLC 输入正确的 IP 地址。

edeb3208-ea63-11ec-ba43-dac502259ad0.png

7. 双击CM CANopen模块的连接器,选择模块参数选项卡。在参数列表中输入值。请注意,这些参数对 CANopen 网络上的模块有效。

在本例中,用于 S7-1200 的 CM CANopen 模块被配置为 CANopen 管理器。

CANopen 网络上的节点号为 1。CANopen 波特率设置为 500 kbit/s,输入数据大小和输出数据大小均设置为 32 字节。

ee1aa402-ea63-11ec-ba43-dac502259ad0.png

8. 配置现已完成,可以下载到 S7-1200 设备。要下载软件配置,请选择右侧的 PLC_1,然后选择“在线”>“下载到设备”。要下载硬件配置,请右键单击树中的设备并选择“下载到设备”>“全部”。

ee2dedbe-ea63-11ec-ba43-dac502259ad0.png

9. 选择您正在使用的 PG/PC 接口(在此示例中为 PN/IE)和您 PC 上的以太网接口(在此示例中为 Intel 82577...)。如果在网络上找到之前输入的 IP 地址,请按“加载”下载到您的设备。如果没有,请从“目标子网中的可访问设备”窗口中的可用列表中选择正确的设备。如果设备在另一个子网上,并且在此窗口中不可用,则必须选中“显示所有可访问的设备”复选框。

ee463ab8-ea63-11ec-ba43-dac502259ad0.png

10.如果下载成功,将出现以下屏幕询问PLC是否应该启动。按完成,PLC 将开始运行下载的空程序。

ee55c686-ea63-11ec-ba43-dac502259ad0.png

11.模块配置完成,可以开始PLC编程了。

创建用于进行PDO数据读写的FC功能块:①在“程序块”中添加FC100功能块并命名为“PDO读写”;② 在“扩展指令”下展开“分布式IO”找到RDREC和WRREC指令;③分别将RDREC和WRREC指令拖入程序段1和程序段2中。

ee6a682a-ea63-11ec-ba43-dac502259ad0.png

RDREC参数说明:读取PDO数据

REQ 功能块使能位 VALID TRUE代表新的数据记录已接收且有效

ID CM模块硬件标识符 BUSY TRUE代表读取数据的过程还未完成

INDEX 16#0090 ERROR TRUE代表在读取数据的过程中产生错误

MLEN CANopen输入数据大小(bytes) STATUS 功能块状态和错误信息

RECORD 读取的数据存放的地址域 LEN 读取数据的长度

WRREC参数说明:写入PDO数据

REQ 功能块使能位 DONE TRUE代表数据已写入CM模块

ID CM模块硬件标识符 BUSY TRUE代表写入数据的过程还未完成

INDEX 16#0091 ERROR TRUE代表在读取数据的过程中产生错误

LEN CANopen输出数据大小(bytes) STATUS 功能块状态和错误信息

RECORD 写入的数据来源的地址域

2. 创建PDO读写指令块变量:打开“PLC变量”下的“默认变量表”,分别添加PDO读写指令块需要用到的参数变量:

ee7d7456-ea63-11ec-ba43-dac502259ad0.png

3. PDO读取数据指令块的参数具体分配如下图所示:

1) 读取的数据存放于M区中起始地址为100,长度为100Bytes(需大于或者等于MLEN)的地址区间。MLEN表明了该区间的有效数据长度,即CANopen输入数据大小。

2) 可以创建DB数据块(例如DB3),RECORD定义为P#DB3.DBX100.0 BYTE 100,读取的数据存入DB3块中起始地址100,长度100Bytes 的地址区间。注意DB块属性中的“优化的块访问”不要勾选。

eea7a4e2-ea63-11ec-ba43-dac502259ad0.png

4. PDO写入数据指令块的参数具体分配如下图所示:

1) 写入的数据来源于M区中起始地址为200,长度为100Bytes(需大于或者等于LEN)的地址区间。LEN表明了该区间中的有效数据长度,即CANopen输出数据大小。

2) 可以创建DB数据块(例如DB3),RECORD定义为P#DB3.DBX200.0 BYTE 100,写入的数据来源于DB3块中起始地址200,长度100Bytes 的地址区间。注意DB块属性中的“优化的块访问”不要勾选。

eebd8546-ea63-11ec-ba43-dac502259ad0.png

5. 根据以上配置可以确认PDO传输参数的地址映射如下表所示:

6. 数据转换:由于CANopen和PLC分别使用的不同的数据格式,所以需要将PDO传输的原始数据转换为可以直接进行读取和设定的用户数据:

1) 创建用户数据块:创建全局数据块DB100,并在DB100中分别添加需要对伺服进行读取的反馈参数和需要对伺服进行写入的设定参数。

eedbba3e-ea63-11ec-ba43-dac502259ad0.png

2) 创建PDO读取数据转换功能块FC101:①在“程序块”中添加FC101功能块并命名为“PDO读_Swap”;② 利用Swap指令和Move指令将PDO读取的数据转换为用户数据。

eef41264-ea63-11ec-ba43-dac502259ad0.png

3) 创建PDO写入数据转换功能块FC102:①在“程序块”中添加FC102功能块并命名为“PDO写_Swap”;② 利用Swap指令和Move指令将用户数据转换为PDO写入的数据。

ef0c3218-ea63-11ec-ba43-dac502259ad0.png

4) 在PDO读写功能块中调用FC101和FC102: 打开FC100功能块,在程序段1(RDREC)和程序段2(WRREC)之间插入新的程序段,在新的程序段中分别调用FC101和FC102如图所示:

ef29627a-ea63-11ec-ba43-dac502259ad0.png

7. 在OB1中调用PDO读写功能块FC100,保存配置并进行编译下载:

ef41bdde-ea63-11ec-ba43-dac502259ad0.png

8. 创建监控表:①在“监控与强制表”中添加新的监控表;②添加PDO读取数据指令块的对应变量和用户数据块中的伺服状态参数;③添加PDO写入数据指令块的对应变量和用户数据块中的伺服控制参数。

ef5622ce-ea63-11ec-ba43-dac502259ad0.png

9. 在线进行监控:①点击“监控”图标进入在线状态;②将R_Req的修改值置为TRUE;③点击“立即修改”图标将修改值写入对应变量;④ 伺服状态参数的对应数据已经被成功读取,查看伺服通讯手册可知状态字16#4231代表伺服处于“Ready to Switch On”状态。

ef9f2532-ea63-11ec-ba43-dac502259ad0.png

10. 绝对位置运动控制测试:① 将W_Req修改值置为TRUE;② 分别对伺服控制参数进行赋值;③依次向控制字中写入0x00060x00070x000F0x001F,每次赋值后点击“立即修改”图标;④ 电机转动一段时间后停止,此时读取实际位置数据与目标位置数据一致。

efb86e52-ea63-11ec-ba43-dac502259ad0.png

-----伺服运动控制例程 -------

该部分以位置模式下的“绝对位置,立刻更新”控制方式为例,编写对伺服进行运动控制的简单例程,供用户在实际编程应用中作参考。

创建功能块FB110并进行变量声明:①在“程序块”中添加FB110 功能块并命名为“位置模式控制”;② 在“变量声明表”中添加以下变量:

efe26644-ea63-11ec-ba43-dac502259ad0.png

2. 在程序段1中编写程序用于控制伺服上电后自动进入“运行使能”状态:

f009bb9a-ea63-11ec-ba43-dac502259ad0.png

f01822e8-ea63-11ec-ba43-dac502259ad0.png

3. 在程序段2中编写程序用于自动触发“绝对位置,立即更新”方式下的位移指令:

f02e7f02-ea63-11ec-ba43-dac502259ad0.png

4. 在OB1组织块的程序段3中编写程序用于控制PLC自动使能PDO读写和网络诊断:

f0439e28-ea63-11ec-ba43-dac502259ad0.png

5. 在OB1组织块的程序段4中调用FB110并赋予实参如图所示:

f05b26d8-ea63-11ec-ba43-dac502259ad0.png

6. 在OB1组织块的程序段5中编写程序用于控制伺服上电后自动回零:

f06cbd62-ea63-11ec-ba43-dac502259ad0.png

7. 在OB1组织块的程序段6中编写程序用于控制伺服自动进行连续的正反转位移指令:

f07afe4a-ea63-11ec-ba43-dac502259ad0.png

8. 点击“保存项目”并重新进行编译和下载。下载完成后对PLC和伺服重新上电,此时可以看到电机缓慢转动一段时间后停止,此时通过PLC监控表或者伺服HMI可以看到实际位置显示为0:

f08ca758-ea63-11ec-ba43-dac502259ad0.png

9. 在监控表中添加“自动运行控制”和“目标到达”变量,向“自动运行控制”中写入修 改值TRUE,此时可以看到电机先以较慢的速度正向移动到8000000位置(第一段位移指令),然后以较快速度正向移动到15000000位置(第二段位移指令),最后以较慢的速度反向移动到6000000位置(第三段位移指令),此时“目标到达”为TRUE。

提示:“目标到达”为TRUE后再次向“自动运行控制”中写入修 改值TRUE,电机会再次自动执行以上三段位移指令。

f0a6a036-ea63-11ec-ba43-dac502259ad0.png

--------------------待续------------------

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10412

    浏览量

    206467
  • AGV
    AGV
    +关注

    关注

    26

    文章

    1082

    浏览量

    40591

原文标题:CM CANopenS7-1200 PLC的CANopen主站/从站模块,使用的功能块

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【米尔-瑞萨RZ/G2UL开发板】6.基于SOEM的EtherCat

    控制和数据采集的需求。它通过一种特殊的主从架构实现,其中一个(Master)负责协调整个网络,而(Slave)则负责提供输入输出功能 EtherCAT由一个
    发表于 03-31 16:22

    【米尔-瑞萨RZ/G2UL开发板】5.CAN通讯进阶CANopen

    索引,其范围是 0x00 到 0xFF 之间。 1.2 NMT网络管理对象 它负责CAN 网络上的初始化、配置和故障处理。节点控制: 节点上线报文:任何一个 CANopen 站上线后,为了提示
    发表于 03-31 16:19

    使用i2c读取两个字节时,为什么只发送一个字节后就发送NACK呢?

    当我使用 i2c 读取两个字节时,有时会返回 RX_OVERFLOW。 我使用逻辑分析仪抓取总线波形,发现只接收到一个字节,主控器发出 NACK,之后返回错误代码
    发表于 03-05 07:42

    TLE9867QXA20如何实现一

    您好,团队,我在我的应用程序中使用 TLE9867QXA20,一,现在我想为我的应用实现一概念。 我参考了以下示例代码,实现了一个
    发表于 03-04 07:26

    通过CANopen转Modbus TCP网关的伺服系统

    。 通过CANopen转Modbus TCP网关,我们能够实现CANopen协议与Modbus TCP协议之间的转换。网关可以配置为CANopen
    发表于 01-02 16:51

    工业通讯中CANOPEN转EtherCAT的转换

    EtherCATPLC/控制器。 CANopen移植到EtherCAT的优缺点包括: 优点: 适合轴间高度耦合的集中式控制; 更长的通信距离(100m); 标准以太网接口,无需C
    发表于 12-12 11:31

    工业生产中Profibus转Profinet网关优势所在

    和管理。 具体步骤如下:1. 将Profibus-DP转Profinet网关连接到Profinet控制器(西门子S7-1500系列PLC)。 通过PC机将Profibus-DP
    发表于 12-11 14:14

    SPI中的MOSI和MISO哪个是的输出呢?

    MOSI和MISO哪个是的输出
    发表于 10-15 11:13

    lightech mbus完整指令库

    lightech mbus完整指令库
    发表于 10-09 06:20

    EtherCAT转PROFINET网关连接三星激光干涉仪

    西门子S7-1200/1500系列的PLC,需要连接带EtherCAT的通讯功能的激光干涉仪。西门子的PLC采用Profinet实时以太网通讯协议,要连接EtherCAT的设备,就必须进行通讯协议
    发表于 08-29 16:34

    CANOPEN转PROFINET网关连接1200PLC的案例

    都是通过交换通信对象完成的。这一部分直接面向 CAN 控制器进行操作。本文介绍了远创智控YC-PN-COP连接西门子1200plc的配置方法供大家参考。
    的头像 发表于 07-05 09:06 469次阅读
    <b class='flag-5'>CANOPEN</b>转PROFINET网关连接<b class='flag-5'>1200PLC</b>的案例

    现场纪录丨YE系列步进驱动器连接Ethercat转Profinet网关

    本案例为西门子1200PLC连接YE系列步进驱动器,在正常工作时要支持EtherCAT协议,作为EtherCAT,监控系统西门子S7-1200系列
    发表于 05-27 12:32

    PLC通讯 #PLC #通讯 #Modbus通讯#硬声创作季

    plc
    或许
    发布于 :2023年05月26日 18:06:12

    应用案例丨伺服驱动器连接Ethercat转profinet网关

    本案例为西门子1200PLC通过EtherCAT转Profinet网关连接派克compax3伺服驱动器,在正常工作时要支持EtherCAT协议,作为EtherCAT,监控系统西门子S7-1
    发表于 05-18 09:31

    【沁恒 CH32V208 开发板免费试用】5.EtherCat移植前准备(四)

    的初始偏移量。其中,Toffset(n)和 Tdelay(n)在初始化时由测量,并写入对应寄存器中。Tref 在运行过程中由
    发表于 04-21 19:49