回复:s7-200cpu226如何实时采集传感器数据并传递至上位机pc?

_WieIchdich

  • 帖子

    17
  • 精华

    0
  • 被关注

    17

论坛等级:游士

注册时间:2017-03-12

普通 普通 如何晋级?

发布于 2017-03-25 17:03:29

2楼

这是自己半复制半原创的程序,达不到预期目的,希望有大神能帮忙纠正一下。

//主程序

//网络1

LD     SM0.1      //初次扫描,初始化例行程序

MOVB   16#09, SMB30//设置串口通讯参数

MOVB   16#94, SMB87//

MOVB   5, SMB89    //

MOVW   +5, SMW90  //空闲时间检测

MOVB   100, SMB94  //设定接收结束标志最大字符数100

ATCH   INT_0:INT0, 23 //开启中断,将中断服务程序0与中断事件23联系

ATCH   INT_2:INT2, 9 //将中断服务程序2与中断事件发送信息联系

ENI                 //使全局中断能

RCV    VB100, 0 //开始接收数据

MOVW   +50, SMW92

//网络2

LD     SM0.0     //载入

MOVB   1, AC1    //将1装入AC1变量存储器

MOVB   1, AC2     //将2装入AC2变量存储器

SLEN   VB100, AC0   //计算缓存区vb100中的字符串中字符数量,并载入AC0

SFND   VB100, "ON0", AC1//在缓存区VB100中查找字符串“ON0”,将首次出现的首字母位置放入AC1中,否则AC0为0。

SFND   VB100, "ON1", AC2//同上

TON    T37, AC0//初始化计时器T37,并以AC0*100ms为计时时间

//网络3

LDB>=  AC1, 16#1//判断是否找寻到相应的字符

AN     T37//计时时间到达后,T37常闭触点断开

=      Q0.0//使输出映像区Q0.0能

//网络4

LDB>=  AC2, 16#1//同上

AN     T37//

=      Q0.1//

//中断程序0

LDB=   SMB86, 16#04//检测接收状态

MOVB   10, SMB34//定义一个10ms定时中断

ATCH   INT_1:INT1, 10//开启中断

CRETI//返回中断

NOT//如果在任何情况下结束接收,则开始新的接收

RCV    VB100, 0

//中断程序1

LD     SM0.0//

DTCH   10//隔离中断

XMT    VB100, 0//将缓存区的信息发送出去

LD     SM0.0//

ITB    AC0, VB200//将整数型数据AC0转化为字节型数据并放入缓存区VB200

MOVB   VB200, QB0//将缓存区VB200传送至QB0中

//中断程序2

LD     SM0.0//

RCV    VB100, 0//


向前,向前,向前
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33274条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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