有人遇到了一個(gè)很有趣的問(wèn)題。
在初始化組織塊ob100中設(shè)置mw20的初始值為10。用mw20作s7計(jì)數(shù)器的預(yù)設(shè)值pv。計(jì)數(shù)器得到第一個(gè)計(jì)數(shù)脈沖時(shí),系統(tǒng)錯(cuò)誤sf燈亮,cpu停機(jī)。
cpu停機(jī)的原因如下:
計(jì)數(shù)器的預(yù)設(shè)值pv為bcd碼,計(jì)數(shù)器得到第一個(gè)計(jì)數(shù)脈沖時(shí),首先將ob100中設(shè)置的mw20的初值10轉(zhuǎn)換為bcd碼,10對(duì)應(yīng)的16進(jìn)制數(shù)為16#a,不是bcd碼,所以出現(xiàn)編程錯(cuò)誤。
出錯(cuò)后在模塊信息的診斷緩沖區(qū)中可以看到“bcd轉(zhuǎn)換錯(cuò)誤”。
將ob100中的10改為c#10就ok了。