| 作者 | 主题 |
|---|---|
|
yellowhu 游民 经验值:123 发帖数:81 精华帖:1 |
楼主
主题:关于CP341通讯发送数据不成功的问题???急!
控制系统为CPU414H
远程模块为IM153-2 其中一个导轨上有2个CP341的模块,分别连了2条MODBUS总线 其中CP341作为MASTER ,MODBUS现场设备作为SLAVE 程序如下:可是CP341发送指示灯一直不亮; OB34{ L 3 //SLAVE 站地址 03 T DB1000.DBB 0 L 3 //功能块FC03 T DB1000.DBB 1 L W#16#48 // 其始地址48位,即:05号地址 T DB1000.DBW 2 L 16 //读取长度16位,即1个字 T DB1000.DBW 4 CALL FB 8 , DB600 SF :='s' //不明白“S”意思 REQ :=M1.1 //M1。1==1 R :=FALSE LADDR :=5000 //CP341,I区其始地址 DB_NO :=1000 //报文数据存放的DB1000 DBB_NO :=0 LEN :=8 //报文数据长度 R_CPU_NO:= R_TYP :='x' //不明白“X”意思 R_NO := R_OFFSET:= R_CF_BYT:= R_CF_BIT:= DONE :=M1.2 //运行显示:0 ERROR :=M1.3 //运行显示:1 STATUS :=MW2 //运行显示:16#301 运行结果 CP341 SF灯不亮 RXD 灯不亮 TXD灯一直不亮 CP341 在线诊断为: Event 1 of 3: Event ID 16# F1C8:0008 Mode transition: CPU in RUN Incoming event Event 2 of 3: Event ID 16# F1C8:0004 IF 1: Module parameters already on CP (same time stamp) Incoming event Event 3 of 3: Event ID 16# F1C8:0003 IF 1: Module parameters accepted by CP Incoming event 现在找不到CP341不发送数据的原因!!! 以下为接受收据的程序 CALL "P_RCV_RK" , DB700 EN_R :=TRUE R :=FALSE LADDR :=5000 DB_NO :=2000 DBB_NO :=0 L_TYP := L_NO := L_OFFSET:= L_CF_BYT:= L_CF_BIT:= NDR :=M4.1 ERROR :=M4.2 LEN :=MW6 STATUS :=MW16 } 接受、发送用的是FB7,FB8 |
|
wincc_ipc 游士 经验值:288 发帖数:256 精华帖:2 |
楼
主题:回复:关于CP341通讯发送数据不成功的问题???急!
如果没有连接Modbus RTU,那么发送指示灯应该亮,只要程序执行了发送命令,但由于没有响应,接收指示灯肯定不会亮。我在调试的时候,就是因为‘X’为小写,弄得只能发送却接收不到数据。
|
|
yellowhu 游民 经验值:123 发帖数:81 精华帖:1 |
楼
主题:回复:关于CP341通讯发送数据不成功的问题???急!
TO:东方红
LADDR的5000这个地址是我在CP341里设置的地址,不是乱设的 :) TO:wincc_ipc 非常非常感谢,确实是因为这2个字符需要大写的原因,今天一天终于把这条CP341给调通,全部都可以上线看到数据了。我一直看《SIEMENS工业通讯指南》,所以被误导了,不明白这么关键的问题,居然没有一个地方提示需要注意的哦! 以上2位,我还有个问题请求帮助: 我一共有4个CP341共挂了4种的MODBUS SLAVE通讯设备,那么我的通讯数据采集怎样做会比较好,每个CP341下面各又挂了5台SLAVE, 我目前只是把1个CP341下面的5个SLAVE通讯做通了,但具体的程序还没有做, 我的构想是做4个FC,每个FC各负责一条MOSBUS线采集,4个FC全部放在OB35里, { 每个FC里做一个“SLAVE地址的累加变量”和一个“MODBUS 功能块的累加变量”,FC每执行一次就把DB2000(FB8读出数据块)的数据转到专门存贮的DB里去,再去做“MODBUS 功能块的累加变量”的累加和“SLAVE地址的累加变量”的累加,FC每执行一次就把该条总线上的所有数据都读上来。 } 不知道这样想发是否可行??? 再次非常感谢帮助!前2天我问了SIEMENS的技术热线,居然啥也没问出来,晕~~ |