首先感谢大家对我上一个问题的解答。这里我列出了解答中我不甚明白的地方,请大家不吝指教。
以下是驿站927朋友的回答:
927:M大多情况下用作中间变量,位存取(尽管它也可以以字节、字、双字存取),并且200提供的M变量不是很多M0.0-M31.7共32个字节。特殊情况,M0-M13这14个字节可以设置成永久性断电保持寄存器区.
请问是不是每次程序中都要在开始的地方人为清零?
——————设置断点保持,数据重启以后自动清零。
我的疑问:这里是不是应该为:不设置数据保持,断电重启后才能自动清零。
927:如果不断电的话,是不是每次程序下载后,M中的值还是上次其他程序中设置的值
——————程序重新下载,数据保持的值不是上次设置的值。
我的疑问:我做了个实验,使用M0.1,不让它数据保持。在第一个程序中,我设置M0.1为1,然后将程序下载下去,通过状态表观察M0.1为1。然后我又编写一个程序,将M0.2设为1,并下载下去,通过状态表观察M0.1还是为1。说明第二次程序下载并没有把没涉及到的存储器(M0.1)自动清零,而是仍然保存了上次程序设置的值。这不是说明在不断电的情况下,每次程序下载后,还是保存了上次程序设置的值吗??
上面是我对解答的一些疑问,还请大家不吝指教。
参考《西门子S7--200的数据保持问题》下载:
http://www2.ad.siemens.com.cn/download/Upload/AS/faq/F0424.pdf
最佳答案
引用:
我的疑问:我做了个实验,使用M0.1,不让它数据保持。在第一个程序中,我设置M0.1为1,然后将程序下载下去,通过状态表观察M0.1为1。然后我又编写一个程序,将M0.2设为1,并下载下去,通过状态表观察M0.1还是为1。说明第二次程序下载并没有把没涉及到的存储器(M0.1)自动清零,而是仍然保存了上次程序设置的值。这不是说明在不断电的情况下,每次程序下载后,还是保存了上次程序设置的值吗??
答:根据楼主实验的和《西门子S7--200的数据保持问题》都有出入,我想可以理解为,你的实验是正确的,别人回答的也是正确的,既然会出现两个结果,那就来分析一下吧!
你的程序强制了M0.1,然后又下载了一个程序,M0.1还是为1,这说明你的强制信号还是没有取消,才会出现这样的现象,另外你的M0.1如不是保持型的,你可以断电试下,应该是断电后会出现清零的.强制信号是需要手动来取消的.
有了强制信号,你在下载的时候都会有提示的呀,这样就说明一个问题了,强制直接影响你的实验结果的.
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc295622.html