--20191118更新程式,程式調整為使用狀態機的方式實現
publicvoid
circlemain()
#endregion
#region 資料採集及變數對映
var result = modbusplc.readdiscrete("
0", 7
);
if (!result.issuccess)
];];
];];
];];
];
#endregion
#region 急停按鈕
if (bstop==false
)
#endregion
#region 狀態機
switch
(esystemstatus)
else
break
;
case
e_system_status.feed:
if(bbeforeprintsensor)
break
;
case
e_system_status.stable:
//5s後還沒有執行到列印位置,可能卡板或者感測器失效
if (delay100ms > 30
)
if(bprintsensor)
);delay100ms = 0
; }
break
;
case
e_system_status.ready:
if (delay100ms > 10
)
break
;
case
e_system_status.printing:
if (nrouteindex else
if (eprintstep ==eprintstep.sendstartpoint)
}else
if (eprintstep ==eprintstep.movedonestartpoint)
else
if (eprintstep ==eprintstep.sendendpoint)}}
else
break
;
case
e_system_status.printpreend:
if(baftersingal)
break
;
case
e_system_status.printend:
//卡板或者感測器失效
if (delay100ms > 50
)
if (!baftersingal)
break
;
case
e_system_status.error:
modbusplc.writecoil(redlampaddress,
true
); modbusplc.writecoil(greenlampaddress,
false
); modbusplc.writecoil(alarmbeepaddress,
true
);
if(breset)
break
;
default
:
break
; }
#endregion
#region 顯示狀態action
actiondisplaystatus = (msg) =>;
invoke(actiondisplaystatus, statusmsg + "
" +eprintstep.tostring());
#endregion
} }
總結下面幾點
1.與下位機的連線盡量保持長連線,每次用到的時候去連線的話,過一段時間速度明顯下降,什麼問題並沒有找到
2.c#中的bitconverter 類可以非常方便的在位元組與其他型別之間進行轉換
3.週期性操作使用while迴圈,避免使用timer定時器
4.操作一些標誌位的操作,盡量放到乙個執行緒中,多個執行緒同時操作變數容易產生奇怪的錯誤
敏捷經驗教訓, 開發總結!
敏捷的過程改進方法 從經驗教訓中學習 敏捷方法開發總結的點評記錄 敏捷的過程改進方法 從經驗教訓中學習 每次去客戶現場做 差距分析或者執行檢查 總是習慣於找他們的缺點,但是每次也總能從客戶那裡發現他們的優點,時間久了,慢慢地對缺陷麻木了,審醜疲勞了,只有發現他們的優點時,我才會精神一振,心情愉快。今...
程式設計經驗教訓總結
1 新建的專案工程,其路徑最好不要有中文,避免編譯出錯 2 對於有多個標頭檔案的專案,每個標頭檔案最好使用 ifndef define.endif 以避免重複定義出錯 3 新建結構體 類時一定要記得在結尾處加上封號,不然會報錯 4 對於乙個能正常執行的專案,如果要對其加以修改,最好在動工之前拷貝乙份...
經驗教訓總結,改進自己
1,多思慎言 不要隨意向人訴說你的不滿,抱怨。要管得住自己的嘴,不該讓別人知道的事情就絕不要說!不要說不自信的話和表現 開會時,如果沒有很好的意見,最好不要發言,說些沒有用的廢話 2,保持積極的心態,隨時接受挑戰,做別人不願做的事情.有機會就要好好把握。3,經常回顧和總結,改進提高自己 對執行不到位...