当前位置:
关于s7300的脉冲
回复 | 人气 | 打印
阿呆的中国梦 个人主页 给TA发消息 加TA为好友 发表于:2016-10-07 16:57:03 楼主

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

分享到: 关注收藏 邀请回答 回复 举报
yuanle 个人主页 给TA发消息 加TA为好友 发表于:2016-10-07 19:19:36 1楼
 

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


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

  回复 引用 举报
阿呆的中国梦 个人主页 给TA发消息 加TA为好友 发表于: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 个人主页 给TA发消息 加TA为好友 发表于: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

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



  回复 引用 举报
阿呆的中国梦 个人主页 给TA发消息 加TA为好友 发表于: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 个人主页 给TA发消息 加TA为好友 发表于:2016-10-08 15:10:12 5楼
 

看看 学习一下       

  回复 引用 举报
麦田闻稻香 个人主页 给TA发消息 加TA为好友 发表于:2016-10-08 20:40:51 6楼
 

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

  回复 引用 举报
风隼天涯 个人主页 给TA发消息 加TA为好友 发表于:2016-10-10 11:23:03 7楼
 

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

  回复 引用 举报

周点击排行
周回复排行
最新求助