全国服务热线 15221406036

西门子模块6ES7241-1AA22-0XA0

发布:2023-03-22 17:20,更新:2024-05-08 07:10

西门子模块6ES7241-1AA22-0XA0

在 S7-300 CPU 的用户程序中调用功能块
为了通过 S7-300 CPU 的 CP341 接收来自手持读码系统的数据,在 S7-300 CPU 的用户程序中调用功能块 FB7 'P_RCV_RK'。

FB7 'P_RCV_RK' 位于库文件 'CP PtP' 下的文件夹 'CP 341 > Blocks' 中。

在 SIMATIC Manager 中通过菜单 'File > Open' 打开 'CP PtP' 库。
'Open Project' 对话框中选择 'Libraries' 选项卡。
选择 'CP PtP' 库并点击 'OK' 按钮。


图 06

从库中复制 FB7 'P_RCV_RK' 并将其插入到 S7 程序的块中。

本例程是在 FC100 中调用 FB7 'P_RCV_RK'。FC100 是在OB1 中被循环调用的。
将块的 EN_R 输入端置为 'TRUE' 以便 CP341 可以在任意时刻接收到数据。
手持读码系统接收到的数据被存储在数据块 DB24 中。
输出端 NDR,ERROR 与 STATUS 是工作评估所需要的,并且在同一周期内是有效的。
输出端 'NDR' 用于显示新的数据被接收并存储在 DB24 中。如果没有成功完成读取作业,那么输出端 ERROR 被置 1 ,同时输出端 STATUS 输出错误信息。


图 07

注意
如果使用的是 CP340,为了通过 在S7-300CPU中的CP340 接收手持读码器的数据,应在 S7-300 CPU 的用户程序中调用功能块 FB2 'P_RCV' 。FB2 'P_RCV' 位于库文件 'CP PtP' 下的文件夹 'CP 340 > Blocks' 中。

 西门子模块6ES7870-1AB01-0YA0

 

配置完成后保存时会提示是否装载驱动。

图6

6、此时必须连接到实际的PLC,点击Yes按钮装载驱动,或点击Load Drivers装载,装载时CPU必须为STOP模式。

 

图7

7、装载完成后,如果再次装载,Step7会提示Driver already exists。配置完成后点击下载按钮保存编译硬件组态,并确认没有错误。

图8

编写通信程序

1、双击OB1,打开OB1编程画面,从库Libraries->CP PtP->CP341中调用发送程序块FB8 P_SND_RK,分配背景数据块DB8,将参数LADDR设为硬件组态中的输入起始逻辑地址256。

图9

2、创建发送数据块DB1,从站地址为2,功能码为3,起始地址为0,读4个寄存器数据,具体功能码3 的使用参见Modbus Master手册 5.3 Function Code 03 - Read Output Registers部分的说明。

图10

3、调用发送功能块,设置参数。

图11

FB8 P_SND_RK的参数设置见下表:

SF

‘S’为发送,此处必须为大写的‘S’

LADDR

硬件组态中的起始逻辑地址,本例中为256

REQ

发送数据触发位,上升沿触发,本例中为M0.0

DB_NO

发送数据块号,本例中为1(DB1)

DBB_NO

发送数据的起始地址,本例中为0(DB1.DBB0)

LEN

发送数据的长度,本例中为6

R_TYP

‘X’为扩展的数据块,此处必须为大写的‘X’

R

取消通讯,本例中不用

DONE

发送完成位,发送完成后为TRUE,同时没有错误

ERROR

错误位,为TRUE说明有错误

STATUS

状态字,标识错误代码,查看Modbus Master手册第7章获得相应的说明

其它参数

本例中不用

 

4、从库中Libraries->CP PtP->CP341调用接收程序块FB7 P_RCV_RK,分配背景数据块DB7,将LADDR设为硬件组态中的输入起始逻辑地址256。

图12

5、创建接收数据块DB2。

图13

6、调用接收功能块,设置参数。


联系方式

  • 地址:上海松江 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 邮编:201600
  • 联系电话:未提供
  • 经理:聂航
  • 手机:15221406036
  • 微信:15221406036
  • QQ:3064686604
  • Email:3064686604@qq.com