回复:Cp341通过RS485采用ModbusMasterRTU通信,采用范例程序,DB42的内容如何填写?

冬日

  • 帖子

    3374
  • 精华

    56
  • 被关注

    45

论坛等级:奇侠

注册时间:2005-09-01

白金 白金 如何晋级?

发布于 2007-03-01 19:50:22

0楼

我加了DB50.DBX29.6后问题好像没有再出现,但是不知道为什么要这么做,把源程序发上来给大家看看。由于plc有ups供电,而rtu没有ups电源,所以每次停机的时候总有cpu还在运行,rtu已经停电,所有通信就一直报故障,第二天起来就不行了,不知道是不是cp341错误太多会停止发送。
M1.3:2hz的脉冲
DB50.DBX 29.6--->很关键的东西,我加了这个以后通信一直正常,有人可以解释原因吗?

A M 1.3 //Trigger SEND
= M 4.5
= DB50.DBX 29.6

A M 4.5
AN DB40.DBX 0.0 //SEND_REQ
AN DB40.DBX 0.4 //SEND_DONE
AN DB40.DBX 0.5 //SEND_ERROR
R M 4.5 //Reset Trigger BSEND
S DB40.DBX 0.0 //Set SEND_REQ

// ------------------------
// Generate edge SEND_REQ
// ------------------------
A(
O DB40.DBX 0.4 //SEND_DONE
O DB40.DBX 0.5 //SEND_ERROR
)
A DB40.DBX 0.0 //SEND_REQ
R DB40.DBX 0.0 //SEND with REQ=0
// S M 4.5
// ------------------------
// Supply LEN
// ------------------------
L W#16#6 //Length SEND-Data
T DB40.DBW 10 //SEND LEN

// ------------------------
// SEND with Instance-DB
// ------------------------
CALL FB 8 , DB50
SF :='S'
REQ :=DB40.DBX0.0
R :=DB40.DBX0.1
LADDR :=DB40.DBW16
DB_NO :=44
DBB_NO :=0
LEN :=DB40.DBW10
R_CPU_NO:=
R_TYP :='X'
R_NO :=
R_OFFSET:=
R_CF_BYT:=
R_CF_BIT:=
DONE :=DB40.DBX0.4
ERROR :=DB40.DBX0.5
STATUS :=DB40.DBW12

// -------------------------------
// Check "Complete without error"
// -------------------------------
A DB40.DBX 0.4 //DONE ?
JCN CON1 //if NO
L DB40.DBW 6 //"Complete without Error"
+ 1 //increment counter
T DB40.DBW 6

NOP 0
NOP 0 //further user functions
NOP 0

JU LEAV


// -------------------------------
// Check "Complete with error"
// -------------------------------
CON1: A DB40.DBX 0.5 //ERROR ?
JCN CON2 //if NO

L DB40.DBW 8 //"Complete with error"
+ 1 //increment counter
T DB40.DBW 8

NOP 0
NOP 0 //Error-Handling
NOP 0

L 0
L DB40.DBW 12 //if STATUS <> 0
==I
JC LEAV

T DB40.DBW 14 //save STATUS
JU LEAV

// ----------------------------
// Check "Error in STATUS"
// ----------------------------
CON2: L 0
L DB40.DBW 12 //if STATUS <> 0
==I
JC LEAV

T DB40.DBW 14 //save STATUS

NOP 0 //
NOP 0 //Error-Handling
NOP 0


LEAV: CLR
If anything can go wrong, it will.
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54663条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。