今天见网友在找答案咨询能否置位多个连续M点和I点问题,答案一致认为S指令可以同时置位多个连续M点、复位多个连续的M点,但无法这样操作I点。
我的答案是不一样的,我认为有实际硬件组态的I\O点用户在程序中是无法操作的,即使可以操作,也会被CPU的输入/输出映像区指令覆盖用户的操作结果,手头没有200SMART CPU,就用200CN做个实验给大家验证一下吧,200SMART与200CN的类似。
下图是V0.0上升沿置位多个M点和I点的例子(前提是I点无硬件对应---未用),如图1
图1
该图说明,未使用的I点就像未使用的M点、V点一样可以在用户程序中使用,用S指令可以置位多个连续的I,当然也可以使用R指令复位多个未使用且被置位的I点,如下图2
图2
当然,大家答复不能操控I点也不是说不对,只是不是很严谨而已,我的硬件只使用的CPU来做的验证,所以I0.0~I1.5的点是无法被置位和复位指令操作的,如下图3
图3
所以说无硬件对应的I/O地址,就可以像未使用的内存地址一样由用户支配,已经配置硬件的I/O地址,需要在程序中做逻辑输出或立即输出,才可以正确操作该外部地址;若逻辑输出受条件限制无法达到用户调试目的,即用户想得到的调试结果,可以使用强制命令。
不知到我的说法是否严谨,是否正确,欢迎大家指正。