闪烁程序的问题
刘玉蓉
发布于2014-11-04 17:56
44
0
标签:
MB26 is the CPU clock time byte MB28 support MB27 is an user one shot byte
< T >< T >< T >< T > < T >< T >< T >< T >
----- ----- - - - -
---- ----- ----- ---- ---- ---- ---- ----
bit 0 0.1 sec blink bit 0 0.1 sec one-shot + pause
bit 1 0.2 sec blink bit 1 0.2 sec one-shot + pause
bit 2 0.4 sec blink bit 2 0.4 sec one-shot + pause
bit 3 0.5 sec blink bit 3 0.5 sec one-shot + pause
bit 4 0.8 sec blink bit 4 0.8 sec one-shot + pause
bit 5 1.0 sec blink bit 5 1.0 sec one-shot + pause
bit 6 1.6 sec blink bit 6 1.6 sec one-shot + pause
bit 7 2 sec blink bit 7 2 sec one-shot + pause
+-------+-------+-------+-------+-------+-------+-------+-------+-------|
| BIT # | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+-------+-------+-------+-------+-------+-------+-------+-------+-------|
| TIME | 2 s | 1.6 s | 1 s | 0.8 s | 0.5 | 0.4 | 0.2 | 0.1 |
+-------+-------+-------+-------+-------+-------+-------+-------+-------+
L MB 26 // Load oscillator flag byte
L MB 28 // Load auxiliary flag byte
INVI // change 0s to 1s and viceversa
AW
T MB 27 // Update one-shot flag byte
L MB 26
T MB 28 // Update auxiliary flag byte
请问一下这个程序是什么意思啊!我仿真好像没有什么反应啊!
佳答案
你在SIMATIC管理器中打开你的项目的硬件组态界面,双击机架中的CPU如CPU315,打开CPU属性对话框,其中子项Cycle/Clock Memory(周期/时钟存储器),根据你的程序,位存储字MB26是时钟存储器,只要在Clock Memory下“Clock Memory”前打勾,并且在Memory Byte(存储字节)中填入26,那么对应的位存储字MB26中8个位代表不同的频率和周期。时钟存储器MB26的位 7 6 5 4 3 2 1 0
频率/Hz 0.5 0.62 1 1.25 2 2.5 5 10
周期/s 2 1.6 1 0.8 0.5 0.4 0.2 0.1
从上可以看出上述表正好对应你的上述周期描述,实际上MB26中信号是脉冲信号。左边要求为周期性闪烁,右边要求周期性闪烁+暂停
L MB 2 // Load oscillator flag byte装载位存储器字节MB26的内容(震荡标志字节)到累加器1中
L MB 28 // Load auxiliary flag byte //装载附助标志字节MB28到累加器1中,同时将MB26的内容(震荡标志字节)移到累加器2中
INVI // change 0s to 1s and viceversa单字整数反码(16位)(将累加器1(MB28中脉冲信号取反,即改变0秒为1秒,1秒为0秒)
AW //将累加器1(MB28进行反码后数值)和累加器2(MB26数据)进行字“与”操作(16位)
T MB 27 // Update one-shot flag byte更新一个闪烁标志字节(将上述字与操作结果传送到MB27中
L MB 26//将MB26中内容装载到累加器1中
T MB 28 // Update auxiliary flag byte更新辅助标志字节(把MB26中内容传送到字节MB28中)