PCS7和STEP7系统的通信 点击:946 | 回复:1



wuluolan

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:159帖 | 652回
  • 年度积分:2
  • 历史总积分:1569
  • 注册:2006年5月07日
发表于:2010-01-11 14:42:29
楼主

水泥磨和水泥包装是独立的系统,水泥磨用的是PCS7 V6。0系统,水泥包装用的是STEP7 V5。3系统

但在涉及到火车散装的时候考虑到实际问题,用的物理硬件点是水泥磨PLC站的,但是在水泥包装中控进行控制,就出现了水泥包装和水泥磨的通信情况。

在具体的实际硬件和网络组态如PLC建立S7连接都是没有问题,主要是有一些通信的程序有些不明白,贴出来大家看看

 

水泥磨向水泥包装发送数据

CALL "BSEND" , DB12 //调用DB12      调用的是SFB12,块加锁看不到内部
REQ :="CLCK_1S" //上升沿触发工作   设置的是1S脉冲
R :=M10.0 //复位,终止数据交换
ID :=W#16#7 //连接ID       建立S7连接时候水泥磨的ID
R_ID :=DW#16#2 //连接号,相同连接号的功能块互相对应发送接收数据
DONE :=M10.1 //为1时,发送完成
ERROR :=M10.2 //为1时,有故障发生
STATUS:=MW20 //状态代码
SD_1 :=P#DB1.DBX0.0 BYTE 500 //发送数据区 这个数据区和数据长度是怎么划的,谁给详细解释一下?
LEN :=MW22 // 发送数据的长度

L 500
T MW 22

CALL "BLKMOV" //78的DI(I76.0-I95.7)发送到包装 调用的是SFC20,加锁
SRCBLK :=P#I 76.0 BYTE 20         这个差不多能看懂,以I76。0开始传递20个字节,一个字节8位,刚好传递DI(I76.0-I95.7)

RET_VAL:=MW30    MW30是什么作用?后面的MW34等等
DSTBLK :=P#DB1.DBX76.0 BYTE 20

CALL "BLKMOV" //78的AI(PIW848-PIW878)发送到包装 这个块的数据是怎么处理的,不明白?
SRCBLK :=P#I 848.0 WORD 16
RET_VAL:=MW34
DSTBLK :=P#DB1.DBX 0.0 WORD 16

CALL "BLKMOV" //78的AI(2)(PIW912-PIW926)发送到包装
SRCBLK :=P#I 912.0 WORD 8
RET_VAL:=MW36
DSTBLK :=P#DB1.DBX 40.0 WORD 8

CALL "BLKMOV" //78的AI(3)(PIW656-PIW662)发送到包装
SRCBLK :=P#I 656.0 WORD 4
RET_VAL:=MW40
DSTBLK :=P#DB1.DBX 100.0 WORD 4

水泥包装接收水泥磨的数据

CALL "BRCV" , DB13 //调用DB13
EN_R :=TRUE //为1时,准备接收
ID :=W#16#2 //连接ID
R_ID :=DW#16#2 //连接号,相同连接号的功能块互相对应发送接收数据
NDR :=M10.4 //为1时,接收完成
ERROR :=M10.5 //为1时,有故障发生
STATUS:=MW24 //状态代码
RD_1 :=P#DB2.DBX0.0 BYTE 500 //接收数据区
LEN :=MW26 // 接收数据的长度

接受和传送的程序如上面,包装发送的和水泥磨接收的类似,发送的数据长度是MW22,接收的怎是MW26?





wuluolan

  • 精华:1帖
  • 求助:0帖
  • 帖子:159帖 | 652回
  • 年度积分:2
  • 历史总积分:1569
  • 注册:2006年5月07日
发表于:2010-01-11 15:18:11
1楼

还有个问题水泥磨的通信程序做在FC2中然后在OB1中进行调用

SET
SAVE
= L 20.1
UC FC 1400
A L 20.1
CALL "Communication_84-87"  时常丢失的语句

SAVE
BE

然而,当整站对水泥磨PLC进行编译下载时,调用的FC2时常丢失,导致通信故障。


热门招聘
相关主题

官方公众号

智造工程师