与 CPU 进行 PROFIBUS DP 通信的示例程序

admin 2025-01-09 57人围观 ,发现181个评论

下面显示的是适用于CPU上插槽0中的PROFIBUSDP模块的示例程序,该程序使用SM存储器中DP端口信息。该程序通过SMW1402确定DP缓冲区位置,通过SMB1404和SMB1405确定缓冲区大小。这些信息用于将DP输出缓冲区的数据复制到CPU的过程映像输出寄存器。同样,CPU的过程映像输入寄存器中的数据则被复制到V存储器输入缓冲区。

在适用于插槽0中DP模块的如下示例程序中,SM存储区的DP组态数据提供了DP设备的组态。该程序使用以下数据:

SMB1406

DP状态

SMB1401

主站地址

SMW1402

输出的V存储器偏移量

SMB1404

输出数据的字节数

SMB1405

输入数据的字节数

VD1000

输出数据指针

VD1004

输入数据指针

示例:组态与S7-200SMARTCPU的DP通信

程序段1:


计算输出数据指针。若处于数据交换模式:

输出缓冲区是相对于VB0的偏移量。

将V存储器偏移量转换为长整数。

与VB0地址相加获得输出数据指针。

LDB=SMB224,2

MOVDVB0,VD1000

ITDSMW226,AC0

+DAC0,VD1000

程序段2:


计算输入数据指针。若处于数据交换模式:

复制输出数据指针。

获取输出字节数。

与输出数据指针相加获得起始输入数据指针。

LDB=SMB224,2

MOVDVD1000,VD1004

BTISMB228,AC0

ITDAC0,AC0

+DAC0,VD1004

程序段3:


将主站输出传送到CPU输出。将CPU输入复制到主站输入。若处于数据交换模式:

将主站输出复制到CPU输出。

将CPU输入复制到主站输入。

LDB=SMB224,2

BMB*VD1000,QB0,VB1008

BMBIB0,*VD1004,VB1009

LAD/FBD

说明

STL

猜你喜欢
    不容错过