200smart st40走MODBUS通讯控制3台伺服,触摸屏按钮按下,3.5秒电机才转,

已锁定

haoge424

西门子1847工业学习平台

  • 帖子

    122
  • 精华

    0
  • 被关注

    5

论坛等级:游侠

注册时间:2017-05-21

普通 普通 如何晋级?

200smart st40走MODBUS通讯控制3台伺服,触摸屏按钮按下,3.5秒电机才转,

2826

23

2019-02-19 10:44:29

        小弟最近做了一个项目,smart控制3台伺服电机,走modbus控制,本体自带串口连接触摸屏(触摸屏没有网口), 又增加一信号板用来连接三台伺服。

        伺服的控制通过modbus的轮询来控制,轮询结构如下

                      1。读伺服1报警码 ( 1字)

                      2。读伺服2报警码

                      3。读伺服3报警码

                      4。读伺服1位置  (2字)

                      5。读伺服2位置

                      6。读伺服3位置

                      7。写伺服1运动指令  (7字)

                      8。写伺服2运动指令

                      9。写伺服3运动指令

    按照上述结构,实测响应延迟在3.5s。。即触摸屏按下按钮大约3.5秒,电机开始转动。。

    大家谁做过类似的项目,你们的延迟多少?

    还是我哪里搞错了呢?延迟实在是太大了,大家帮忙看看,谢谢了

梯形图太占地方,轮询程序转化为下面格式:

Network 1 

LD     SM0.1

R      M13.0, 4

R      M14.0, 3

R      M15.0, 3

R      M10.1, 6

R      M12.1, 3

Network 2 

// MODBUS主站初始化,波特率19200,无奇偶校验,端口号1 = 可选 CM01 信号板上的 RS-485 ,超时1000ms

LD     SM0.0

=      L60.0

LD     SM0.0

=      L63.7

LD     L60.0

CALL   SBR20, L63.7, 19200, 0, 1, +1000, M10.0, MB20

Network 3 

// 避过首次扫描

LDN    SM0.1

EU

S      M13.1, 1

Network 4 

// 轴1报警代码读取  16进制1013转化成10进制

LD     M13.1

=      L60.0

LD     M13.1

EU

=      L63.7

LD     L60.0

CALL   SBR21, L63.7, 1, 0, 44116, +1, &VB122, M10.1, MB21

Network 5 

LD     M10.1

EU

S      M13.2, 1

R      M13.1, 1

Network 6 

// 轴2报警代码读取

LD     M13.2

=      L60.0

LD     M13.2

EU

=      L63.7

LD     L60.0

CALL   SBR21, L63.7, 2, 0, 44116, +1, &VB142, M10.2, MB22

Network 7 

LD     M10.2

EU

S      M13.3, 1

R      M13.2, 1

Network 8 

// 轴3报警代码读取

LD     M13.3

=      L60.0

LD     M13.3

EU

=      L63.7

LD     L60.0

CALL   SBR21, L63.7, 3, 0, 44116, +1, &VB162, M10.3, MB23

Network 9 

LD     M10.3

EU

S      M14.1, 1

R      M13.3, 1

Network 10 

// 通讯读取的报警代码大于0,小于84,将对应报警位输出

LD     SM0.0

LPS

AW>=   VW122, +1

AW<=   VW122, +84

=      M1.0

LRD

AW>=   VW142, +1

AW<=   VW142, +84

=      M2.0

LPP

AW>=   VW162, +1

AW<=   VW162, +84

=      M3.0

Network 11 

LD     M14.1

=      L60.0

LD     M14.1

EU

=      L63.7

LD     L60.0

CALL   SBR21, L63.7, 1, 0, 44098, +2, &VB124, M10.4, MB24

Network 12 

// 读取轴1位置  16进制1001转化为10进制

LD     M10.4

EU

S      M14.2, 1

R      M14.1, 1

Network 13 

// 读取轴2位置

LD     M14.2

=      L60.0

LD     M14.2

EU

=      L63.7

LD     L60.0

CALL   SBR21, L63.7, 2, 0, 44098, +2, &VB144, M10.5, MB25

Network 14 

LD     M10.5

EU

S      M14.3, 1

R      M14.2, 1

Network 15 

// 读取轴3位置

LD     M14.3

=      L60.0

LD     M14.3

EU

=      L63.7

LD     L60.0

CALL   SBR21, L63.7, 3, 0, 44098, +2, &VB164, M10.6, MB26

Network 16 

LD     M10.6

EU

S      M15.1, 1

R      M14.3, 1

Network 17 

// 通讯数据地址是 0x7200-0x7206,根据指令的不同,需要的数据也不一样, 16进制7200转化为10进制为29184

LD     M15.1

=      L60.0

LD     M15.1

EU

=      L63.7

LD     L60.0

CALL   SBR21, L63.7, 1, 1, 429185, +7, &VB300, M12.1, MB27

Network 18 

LD     M12.1

EU

S      M15.2, 1

R      M15.1, 1

Network 19 

// 通讯数据地址是 0x7200-0x7206,根据指令的不同,需要的数据也不一样, 16进制7200转化为10进制为29184

LD     M15.2

=      L60.0

LD     M15.2

EU

=      L63.7

LD     L60.0

CALL   SBR21, L63.7, 2, 1, 429185, +7, &VB320, M12.2, MB28

Network 20 

LD     M12.2

EU

S      M15.3, 1

R      M15.2, 1

Network 21 

// 通讯数据地址是 0x7200-0x7206,根据指令的不同,需要的数据也不一样, 16进制7200转化为10进制为29184

LD     M15.3

=      L60.0

LD     M15.3

EU

=      L63.7

LD     L60.0

CALL   SBR21, L63.7, 3, 1, 429185, +7, &VB340, M12.3, MB29

Network 22 

LD     M12.3

EU

S      M13.1, 1

R      M15.3, 1


200smart st40走MODBUS通讯控制3台伺服,触摸屏按钮按下,3.5秒电机才转, 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8936条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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