SFC14/15
S7-300/400/1500 PLC中,SFC14/15用於將分站的IO數據批量讀取到DB塊中。MOVE(L T)指令只能最多傳送4byte。因此,使用SFC14/15能夠簡化程序段。
LADDR 硬件地址,16進制
RET_VAL 返回值,0表示無故障,其它值表示故障
RECORD 數據塊指針,例如( P#DB13.DBX0.0 byte 100),注意byte和數據長度之間有空格。
轉載請保留 http://www.cnblogs.com/lion-zheng/
80B1故障
在使用中,碰到了80B1故障,幫助文件的描述為
The length of the specified destination area is not identical to the user data
length configured with STEP 7.
即,DB塊中的數據長度,和分站的數據長度不一致。
網絡結構
我使用的網絡是315-2PN/DP和SIMOTION D435-2PN/DP進行的iDevice通訊。Simotion作為iDevice從站,分配了I/O各100個byte。PLC作為主站,以下是PLC側的硬件配置。Simotion的地址為300(16#12C)
故障現象
100個byte的通訊量比較大,我實際需要的大約為80個,因此我定義了DB3,包含80個byte。在OB1中調用SFC14之后,出現了801B報警。
解決方法
DB塊中的數據長度,需要和硬件組態中定義的分站數據長度一致。將DB3改為100個byte。故障消失。
解決的方法很簡單,就是DB塊的數據長度,要和分站長度一致。但解決這個問題的過程中也被一些因素誤導,花了一些時間。例如,分站的數據長度,對於iDevice,並沒有32byte/64byte這樣的限制。另外,SFC14/15在小於4byte時,並不檢查數據長度。
轉載請保留 http://www.cnblogs.com/lion-zheng/
Zheng lei 2017 - 0522