西门子im 154-2profibus-dp 接口模块 西门子im 154-2profibus-dp 接口模块
浔之漫智控技术(上海)有限公司 上海诗慕自动化设备有限公司
本公司销售西门子自动化产品,*,质量保证,价格优势
西门子plc,西门子触摸屏,西门子数控系统,西门子软启动,西门子以太网
西门子电机,西门子变频器,西门子直流调速器,西门子电线电缆
我公司大量现货供应,价格优势,*,德国*
回答:
通过执行_setdpslaveaddress程序可以实现simotion的dp从站地址修改。
实现方法:
(1)首先打开hw config 硬件组态,配置接口为dp从站:
图01. 设置dp 接口为从站
(2)配置dp从站通信的io地址如下图:
西门子im153-2接口模块
图02. 配置dp从站通信的io地址
(3)查询dp 诊断地址用于后续编程时填写参数使用:
图03. 查询该接口的诊断地址
(4)编写如下程序
var_global
locdpslaveaddress : sint := 8; // 需要使用的profibus地址
retdpslaveaddress : structretdpslaveaddress; // 返回值变量
locretval : dint;
neededsetdpaddress : dint := 0;
startchange :bool;
end_var
end_interface
implementation
program bkgchangdpaddress
if startchange then
// 读取当前的dp从站地址
retdpslaveaddress := _getactivedpslaveaddress (
logicaladdresscommunicationadapter := 16382 // 步骤3查询的接口诊断地址
);
if (0 = retdpslaveaddress.functionresult) then
// 检查是否需要更新dp地址,如果当前地址与地址locdpslaveaddress 不相同,则执行更新
if (retdpslaveaddress.dpslaveaddress <> locdpslaveaddress) then
neededsetdpaddress := 1;
else
;
end_if;
end_if;
if (1 = neededsetdpaddress) then
// 设置新的dp地址
locretval := _setdpslaveaddress (
logicaladdresscommunicationadapter := 16382, // 步骤3查询的接口诊断地址
dpslaveaddress := locdpslaveaddress
// profibus address of the local slot
);
if (0 = locretval) then
locretval := _activatedpslaveaddress (
logicaladdresscommunicationadapter := 16382 // 步骤3查询的接口诊断地址
);
else
;
end_if;
end_if;
end_if;
(5)修改startchange为1,程序执行成功会导致simotion重新启动,随后新的dp地址生效。
描述:
sfc14 dprd_dat
使用 sfc 14“dprd_dat”(读取 dp 标准从站的*数据)可读出dp标准从站/profinet io 设备的数据。 如果在数据传送过程中没有发生错误,读出的数据就被输入到由record 建立的目标域。目标域必须与在 step 7 组态中所选的模块的长度相同。 当调用 sfc14 时,只能在所配的起始地址下访问一个模块/dp标识的数据。
sfc15 dpwr_dat
使用 sfc 15“dpwr_dat”(将*数据写入 dp 标准从站)可将 record 中的数据*地传送到所寻址的dp标准从站/profinet io 设备中。 源区域必须与在 step 7 组态中所选的模块的长度相同。 对于模块化结构的标准dp从站只能访问一个dp从站模块。
profibus dp用户*性数据区大长度和寻址
西门子im153-2接口模块
下面的手册中可以找到更多关于profibus dp用户*性数据区大长度和寻址的信息。
表 01
profinet io用户*性数据区大长度和寻址
下面的手册中可以找到更多关于profinet io用户*性数据区大长度和寻址的信息。
表 02
对于通信处理器(cp)子模块的*性数据区域的大小明确如下:
cp mlfb 上限
cp 443-1 6gk7443-1ex20-0xe0 240 bytes
cp 443-1 6gk7443-1ex30-0xe0 240 bytes
cp 443-1 advanced 6gk7443-1ex40-0xe0 128 bytes
cp 443-1 advanced 6gk7443-1ex41-0xe0 240 bytes
cp 443-1 advanced 6gk7443-1gx20-0xe0 240 bytes
cp 443-1 advanced 6gk7443-1gx30-0xe0 240 bytes
cp 343-1 6gk7343-1ex21-0xe0 128 bytes
cp 343-1 6gk7343-1ex30-0xe0 240 bytes
cp 343-1 advanced 6gk7343-1gx21-0xe0 128 bytes
cp 343-1 advanced 6gk7343-1gx30-0xe0 240 bytes
cp 343-1 advanced 6gk7343-1gx31-0xe0 240 bytes
表 03
注意事项:
profibus dp 标准定义了*性用户数据传送的数量上限。当前的 dp 标准从站遵守这些上限,但早期的cpu(1999年前),对*性用户数据的传送,不同的 cpu 有特定的限制。
这些 cpu 对 dp 标准从站*性读写数据的大长度在“dp主站 - 每个 dp 从站的用户数据”下的技术数据中给出。根据这些数值,使用该值,新近的cpu可支持超出dp标准从站 所提供或接收的数据长度。
重要事项:
分散读写*性数据(小于 4 字节),不调用系统函数 sfc14 和 sfc15 时,也是可行的。支持此功能的模块可参考条
下表给出了超过过程映像之外的*性数据的访问方式。
数据区长度 读/写访问 数据*性
1 字节 装载/传送 单元*性
2 字节 字装载/字传送 总长*性
3 字节 sfc14 / sfc15 总长*性
4 字节 双字装载/双字传送 总长*性
5 字节 sfc14 / sfc15 总长*性
表 04
举例:
在下面的例子中,一个s7-400 cpu作为dp主站,一个cp342-5作为从站。
dp从站的输入和输出*性数据区域设定如下:
对于输出,设定传输50个字节的总长*性数据。这50个字节在s7-400cpu的过程影像分区3中数据是*的,所以可以用 load/transfer 命令进行读操作。对于输入,设定传输20个字节的总长*性数据。这20个数据不存储在过程映像或过程映像区中,只能通过系统功能sfc14/15进行写操作。
图 01
在过程映像的更新过程中,操作系统*性地传送此数据。可使用加载和传送指令访问过程映像中的数据。对于 s7-400 cpu ,还可以使用 sfc 26 updat_pi或 sfc 27 updat_po 在程序中的任意点更新过程映像,但此 tpa 在系统侧可能并未进行更新。如果没有或不能把数据放入过程映像,那么就应该使用 sfc14 和 sfc15 进行数据通信。