关于s7300的脉冲 点击:981 | 回复:7



阿呆的中国梦

    
  • 精华:0帖
  • 求助:4帖
  • 帖子:12帖 | 220回
  • 年度积分:0
  • 历史总积分:162
  • 注册:2016年9月16日
发表于:2016-10-07 16:57:03
楼主

咨询各位:怎样在S7-300的主程序里得到一个只在开机扫描一次的脉冲? S7300里没有如SM0.1(也没有三菱的M8002).谢谢




yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10210回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2016-10-07 19:19:36
1楼

在300中,你可以在OB100中编写程序,OB100中的程序确保了它只能在PLC由STOP状态转向RUN状态时运行一次。


这个问题我似乎在百度问答中多次回答了,不知道那些提问的人是否包括了你。

阿呆的中国梦

  • 精华:0帖
  • 求助:4帖
  • 帖子:12帖 | 220回
  • 年度积分:0
  • 历史总积分:162
  • 注册:2016年9月16日
发表于:2016-10-07 20:09:24
2楼


回复内容:

对: yuanle 在300中,你可以在OB100中编写程序,OB100中... 内容的回复!

您好,怪我没说清楚,我是想说除了OB100以外,还有没有其他办法? 因为我发现个问题:在ob100里面打开DB1块:用 L P#dbx0.0; LAR1给ar1赋初值后,在OB1里面AR1初值好像并没赋值成功。  不知道这个是不是因为DB块的打开跨越了块,即只能在同一个块里打开使用。所以想就在OB块里赋初值,但好像又找不到合适的指令和办法。

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10210回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2016-10-07 21:17:45
3楼

我不清楚你是如何编写你的代码的,但是依据如下代码,DB1.DBW2在PLC由STOP转向RUN状态时,被赋值成了100了。

OB100:

OPN DB1

LAR1 P#DBX0.0

L 100

T W[AR1,P#2.0]


所以我个人认为,如果STL并不熟练的情况下,使用绝对地址访问会更简单且不容易出错,你在三菱中不是也是采用绝对地址的么 。

例如:

OB100:

L  100

T  DB1.DBW2

这样看起来不是比使用间接寻址更简单么 。



阿呆的中国梦

  • 精华:0帖
  • 求助:4帖
  • 帖子:12帖 | 220回
  • 年度积分:0
  • 历史总积分:162
  • 注册:2016年9月16日
发表于:2016-10-08 14:54:48
4楼


回复内容:

对: yuanle 我不清楚你是如何编写你的代码的,但是依据如下代码,DB... 内容的回复!


感谢您的关注和指导,自己动手试了一下,问题已经解决。有点收获与大家分享:  1.只要涉及到使用DB块(读或写数据);就必须在使用db块的块中(如OB1和OB100)用OPN打开;  2.程序 涉及循环的,必须保证在每次新的扫描中都要用OPN打开DB块;  3.AR1若在OB100里被赋值改变,这个改变在OB1里面仍然有效。LAR1 P#DBX0.0 这句改变的是AR1;T W[AR1,P#2.0]这句改变的才是DB块的值(如果有这句就必须先有OPN打开指令)    发帖时没搞清楚使用DB块的注意事项,后来用简单的程序试出来了。再次感谢关注!谢谢

whlzhh

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 24回
  • 年度积分:7
  • 历史总积分:8
  • 注册:2011年9月14日
发表于:2016-10-08 15:10:12
5楼

看看 学习一下       

麦田闻稻香

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 13回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2010年6月01日
发表于:2016-10-08 20:40:51
6楼

学习了!谢谢!需要学习的地方还很多呀。

风隼天涯

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 19回
  • 年度积分:0
  • 历史总积分:58
  • 注册:2013年8月12日
发表于:2016-10-10 11:23:03
7楼

在OB100中写,上电初始化调用一次


热门招聘
相关主题

官方公众号

智造工程师