福建省西门子授权供应商---西门子变频器泉州市总代理

供应商
广东湘恒智能科技有限公司
认证
西门子PLC
西门子伺服电机
西门子触摸屏
西门子电缆
西门子变频器
西门子模块
联系电话
13510737515
手机号
13185520415
联系人
董海波
所在地
惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公)
更新时间
2024-05-03 07:00

详细介绍

simatic s7-300/400 cpu中的组织块 (ob) 是指cpu 的操作系统与用户程序之间的接口。发生特定的事件后cpu的操作系统会调用相应的组织块,在ob中编写执行程序可以获取特定事件的信息。例如,如果一个模块具有诊断能力,并且已为它启用了诊断中断,那么当它检测出其诊断状态发生变化时,它将发送一个诊断中断请求到cpu,操作系统就会调用诊断中断组织块ob82。在ob82中编程读取局部变量可以知道故障模块的逻辑基址和四字节的诊断数据。但是如果cpu中没有下载特定事件发生所需调用的组织块,那么cpu将会停止,进入stop模式。所以,很多工程技术人员在项目刚开始编程时,就会先创建一些特定事件对应空的组织块直接下载到cpu中,这样就可以避免发生特定事件时由于cpu中没有相应ob而导致cpu转为stop模式。这样做的好处是避免了cpu停止,但是对于查找错误的原因也会带来一定的麻烦。下面我们就举一个技术支持热线上经常遇到的现象:
工程师:“您好,我是西门子技术支持,请问您有什么技术问题?”
客户:“我正在现场调试,使用的cpu315-2dp,程序运行正常,可是我的cpu上的sf灯一直是亮的。”
工程师:“那是系统故障灯代表的是硬件故障或软件错误,请问您的其他模块有没有红灯?”
客户:“其他模块上没有红灯。”
工程师:“那就是可能程序有错误,您能在线查看cpu的诊断缓冲区吗?”
客户:“我能在线。”
工程师:“好的,那您把诊断缓冲区的信息给我念一下。”
客户:“哦,等一下。。。。。全是一样的内容,什么区域长度错误。”
工程师:“信息都是一样的吗?”
客户:“是的,全是这个。”
工程师:“您点中一条,看下面的详细信息。”
客户:“读时区域长度错误,什么全局db,字访问,地址200,所需的ob(ob121)。”
工程师:“这个就是说您的程序里访问了一个db块里面的dbw200,但是这个db块实际没有那么长,也就是没有dbw200。您需要找到这句程序,看一下是写错地址了,还是db块创建的不够长。”
客户:“是哪个db块啊,是db200吗?”
工程师:“不是。”
客户:“那可麻烦了,我程序里使用了很多db,这个得查什么时候去啊!”
工程师:“您是不是已经下载了ob121啊?”
客户:“是的,里面啥也没写,没有ob块cpu不时会停机吗?”
工程师:“对,那么您现在调试允许cpu停机吗?”
客户:“可以。”
工程师:“好的,如果cpu可以停止就好办了,您先在线把cpu中的ob121删除。”
客户:“等一下。。。。删完了,哦,我的cpu也停了。”
工程师:“再看诊断信息第一条。”
客户:“。。。。哦,是由编程错误导致的停止。”
工程师:“好的,鼠标点中这一条,然后点下面的‘打开块’按钮。”
客户:“我点了,有个提示什么在线、离线?”
工程师:“选择在线就行,不要动鼠标了就,step7会打开您的程序,看看的这段程序,有没有关于db的?”
。。。。
客户:“有,是个move指令,db2.dbw200。”
工程师:“好的,打开您的db2看一下实际长度。”
。。。。
客户:“哦,我看一下,只到198”
工程师:“那就对了,您db2没有dbw200,程序却用到了,您自己查一下是您写错地址了,还是db2长度不够。”
客户:“哦,好的,谢谢。”

上面是一个技术热线上经常发生的场景,技术支持工程师利用cpu缺少相应事件对应的ob会导致停机的性质,利用诊断缓冲区帮助客户找到问题的原因。下面,通过一个简单的例子,有图有真相说明。
一个s7-300项目,在ob1中编写一个简单的语句,将db1.dbw2使用move指令送到mw100中,实际在创建db1时采用的默认长度,只有2个字节,没有dbw2。创建一个空的ob121,将项目下载到cpu中

华南西门子总代理,华中西门子总代理,华东西门子总代理,华北西门子总代理,西北西门子总代理

展开全文

我们其他产品
我们的新闻
咨询 在线询价 拨打电话