A. C#三層結構開發的問題
三層 - 數據層,業務層,界面層.
1.數據層
①數據介面(IData) - 定義數據層介面 - 定義數據加工處理方法(調用數據工廠)
②數據服務(clsDataServer) - 數據最終處理的地方 - 直接與資料庫交互 - 常用的SqlHelper.cs
③數據工廠(clsDataFactory) - 處理數據加工方式 - 實現數據加工處理方法 - 加工後交給數據服務層提交資料庫
2.業務層
④業務介面(IBusiness) - 定義業務介面 - 定義業務邏輯處理方法(調用業務邏輯) - 直接與界面層交互
⑤業務邏輯(clsBusinessLogic) - 處理業務邏輯 - 實現業務邏輯處理方法 - 處理邏輯後交給數據層(調用數據介面)處理數據
⑥業務實體(clsBusinessModel) - 將數據實例化 - 便於程序取值/賦值 - 直接與界面層交互
3.⑦界面層 - 將界面控制項的數據交給業務實體實例化,再將實例化的對象交給業務介面
這里是7個層,比較一下名稱,很容易找到和lz對應的層.
實際上,一般程序里,用不了那麼多層,太多了,開發不容易維護,可以不要介面(少了數據介面,業務介面),數據工廠和業務邏輯可以寫在一起.也就是:
1.數據層
①數據服務
2.業務層
②業務邏輯+數據工廠
③業務實體
3.④界面層
總共4個層就夠了.
ps:每個字都是我敲上去的,希望對你有所幫助.
B. 濡備綍鍋氬ソ.NET涓夊眰妗嗘灦鐨勯」鐩錛
妤間富闂鐨勬槸鐜板湪涓繪祦鐨勭紪紼嬫妧鏈.NET涓夊眰妗嗘灦錛屾垜涓嶅Θ鏉ヨ皥璋堣嚜宸辯殑鎰忚佸惂甯屾湜鏈嬪弸浠鐣欎笅鑷宸卞逛笁灞傛灦鏋勭殑鐞嗚В銆傘傘備笁灞備綋緋葷粨鏋勭殑姒傚康
鐢ㄦ埛鐣岄潰琛ㄧず灞(USL) 涓氬姟閫昏緫灞(BLL) 鏁版嵁璁塊棶灞(DAL)
BLL灝哢SL涓嶥AL闅斿紑浜嗭紝騫朵笖鍔犲叆浜嗕笟鍔¤勫垯鍚勫眰鐨勪綔鐢 1錛氭暟鎹鏁版嵁璁塊棶灞:涓昏佹槸瀵瑰師濮嬫暟鎹錛堟暟鎹搴撴垨鑰呮枃鏈鏂囦歡絳夊瓨鏀炬暟鎹鐨勫艦寮忥級鐨勬搷浣滃眰錛岃屼笉鏄鎸囧師濮嬫暟鎹錛屼篃灝辨槸璇達紝鏄瀵規暟鎹鐨勬搷浣滐紝鑰屼笉鏄鏁版嵁搴,鍏蜂綋涓轟笟鍔¢昏緫灞傛垨琛ㄧず灞傛彁渚涙暟鎹鏈嶅姟錛
2錛氫笟鍔¢昏緫灞:涓昏佹槸閽堝瑰叿浣撶殑闂棰樼殑鎿嶄綔錛屼篃鍙浠ョ悊瑙f垚瀵規暟鎹灞傜殑鎿嶄綔,瀵規暟鎹涓氬姟閫昏緫澶勭悊錛屽傛灉璇存暟鎹灞傛槸縐鏈錛岄偅閫昏緫灞傚氨鏄瀵硅繖浜涚Н鏈ㄧ殑鎼寤恆
3錛氳〃紺哄眰:涓昏佽〃紺篧EB鏂瑰紡,涔熷彲浠ヨ〃紺烘垚WINFORM鏂瑰紡,WEB鏂瑰紡涔熷彲浠ヨ〃鐜版垚:aspx, 濡傛灉閫昏緫灞傜浉褰撳己澶у拰瀹屽杽,鏃犺鴻〃鐜板眰濡備綍瀹氫箟鍜屾洿鏀,閫昏緫灞傞兘鑳藉畬鍠勫湴鎻愪緵鏈嶅姟銆傚叿浣撶殑鍖哄垎鏂規硶
1錛氭暟鎹鏁版嵁璁塊棶灞:涓昏佺湅浣犵殑鏁版嵁灞傞噷闈㈡湁娌℃湁鍖呭惈閫昏緫澶勭悊錛屽疄闄呬笂浠栫殑鍚勪釜鍑芥暟涓昏佸畬鎴愬悇涓瀵規暟鎹鏂囦歡鐨勬搷浣溿傝屼笉蹇呯″叾浠栨搷浣溿
2錛氫笟鍔¢昏緫灞:涓昏佽礋璐e規暟鎹灞傜殑鎿嶄綔銆備篃灝辨槸璇存妸涓浜涙暟鎹灞傜殑鎿嶄綔榪涜岀粍鍚堛
3錛氳〃紺哄眰:涓昏佸圭敤鎴風殑璇鋒眰鎺ュ彈錛屼互鍙婃暟鎹鐨勮繑鍥烇紝涓哄㈡埛絝鎻愪緵搴旂敤紼嬪簭鐨勮塊棶銆 涓夊眰緇撴瀯瑙i噴
鎵璋撲笁灞備綋緋葷粨鏋勶紝鏄鍦ㄥ㈡埛絝涓庢暟鎹搴撲箣闂村姞鍏ヤ簡涓涓涓闂村眰錛屼篃鍙緇勪歡灞傘傝繖閲屾墍璇寸殑涓夊眰浣撶郴錛屼笉鏄鎸囩墿鐞嗕笂鐨勪笁灞傦紝涓嶆槸綆鍗曞湴鏀劇疆涓夊彴鏈哄櫒灝辨槸涓夊眰浣撶郴緇撴瀯錛屼篃涓嶄粎浠呮湁B/S搴旂敤鎵嶆槸涓夊眰浣撶郴緇撴瀯錛屼笁灞傛槸鎸囬昏緫涓婄殑涓夊眰錛屽嵆浣胯繖涓変釜灞傛斁緗鍒頒竴鍙版満鍣ㄤ笂銆 涓夊眰浣撶郴鐨勫簲鐢ㄧ▼搴忓皢涓氬姟瑙勫垯銆佹暟鎹璁塊棶銆佸悎娉曟ф牎楠岀瓑宸ヤ綔鏀懼埌浜嗕腑闂村眰榪涜屽勭悊銆傞氬父鎯呭喌涓嬶紝瀹㈡埛絝涓嶇洿鎺ヤ笌鏁版嵁搴撹繘琛屼氦浜掞紝鑰屾槸閫氳繃COM/DCOM閫氳涓庝腑闂村眰寤虹珛榪炴帴錛屽啀緇忕敱涓闂村眰涓庢暟鎹搴撹繘琛屼氦鎹.
寮鍙戜漢鍛樺彲浠ュ皢搴旂敤鐨勫晢涓氶昏緫鏀懼湪涓闂村眰搴旂敤鏈嶅姟鍣ㄤ笂錛屾妸搴旂敤鐨勪笟鍔¢昏緫涓庣敤鎴風晫闈㈠垎寮銆傚湪淇濊瘉瀹㈡埛絝鍔熻兘鐨勫墠鎻愪笅錛屼負鐢ㄦ埛鎻愪緵涓涓綆媧佺殑鐣岄潰銆傝繖鎰忓懗鐫濡傛灉闇瑕佷慨鏀瑰簲鐢ㄧ▼搴忎唬鐮侊紝鍙闇瑕佸逛腑闂村眰搴旂敤鏈嶅姟鍣ㄨ繘琛屼慨鏀癸紝鑰屼笉鐢ㄤ慨鏀規垚鍗冧笂涓囩殑瀹㈡埛絝搴旂敤紼嬪簭銆備粠鑰屼嬌寮鍙戜漢鍛樺彲浠ヤ笓娉ㄤ簬搴旂敤緋葷粺鏍稿績涓氬姟閫昏緫鐨勫垎鏋愩佽捐″拰寮鍙戱紝綆鍖栦簡搴旂敤緋葷粺鐨勫紑鍙戙佹洿鏂板拰鍗囩駭宸ヤ綔銆 閭d箞涓轟粈涔堣佸簲鐢ㄢ滀腑闂翠笟鍔″眰鈥濆憿錛熶婦浜涗緥瀛:
鎴戜滑鍋囪炬湁涓孌電櫥褰曚唬鐮侊紝鍒欏彲浠ヨ繖鏍峰勭悊Web紼嬪簭錛屽栬傚眰璐熻矗鎺ユ敹鍓嶅彴欏甸潰鐨勬暟鎹錛岀劧鍚庝紶緇欎腑闂村眰錛屼腑闂村眰瀵規暟鎹榪涜屽勭悊錛屾瘮濡傛牸寮忓寲錛岄槻SQL娉ㄥ叆絳夌瓑涓浜涳紝榪欐牱鐨勬暟鎹鍐嶄紶緇欐暟鎹璁塊棶灞傜劧鍚庝笌鏁版嵁搴撹繘琛屾搷浣滐紝姣斿備笌鏁版嵁搴撶殑鐢ㄦ埛鍚嶅拰瀵嗙爜鍖歸厤絳夌瓑涓浜涗唬鐮併
鈥滀腑闂翠笟鍔″眰鈥濈殑鐢ㄩ旀湁寰堝氾紝渚嬪傦細楠岃瘉鐢ㄦ埛杈撳叆鏁版嵁銆佺紦瀛樹粠鏁版嵁搴撲腑璇誨彇鐨勬暟鎹絳夌瓑鈥︹︿絾鏄錛屸滀腑闂翠笟鍔″眰鈥濈殑瀹為檯鐩鐨勬槸灝嗏滄暟鎹璁塊棶灞傗濈殑鏈鍩虹鐨勫瓨鍌ㄩ昏緫緇勫悎璧鋒潵錛屽艦鎴愪竴縐嶄笟鍔¤勫垯銆備緥濡傦細鈥滃湪涓涓璐鐗╃綉絝欎腑鏈夎繖鏍風殑涓涓瑙勫垯錛氬湪璇ョ綉絝欑涓嬈¤喘鐗╃殑鐢ㄦ埛錛岀郴緇熶負鍏惰嚜鍔ㄦ敞鍐屸濄傝繖鏍風殑涓氬姟閫昏緫鏀懼湪涓闂村眰鏈鍚堥傦細 鍦ㄢ滄暟鎹璁塊棶灞傗濅腑錛屾渶濂戒笉瑕佸嚭鐜頒換浣曗滀笟鍔¢昏緫鈥濓紒涔熷氨鏄璇達紝瑕佷繚璇佲滄暟鎹璁塊棶灞傗濈殑涓鐨勫嚱鏁板姛鑳界殑鍘熷瓙鎬э紒鍗蟲渶灝忔у拰涓嶅彲鍐嶅垎銆傗滄暟鎹璁塊棶灞傗濆彧綆¤礋璐e瓨鍌ㄦ垨璇誨彇鏁版嵁灝卞彲浠ヤ簡銆
ASP.NET涓鐨勪笁灞傜粨鏋勮存槑
瀹屽杽鐨勪笁灞傜粨鏋勭殑瑕佹眰鏄:淇鏀硅〃鐜板眰鑰屼笉鐢ㄤ慨鏀歸昏緫灞,淇鏀歸昏緫灞傝屼笉鐢ㄤ慨鏀規暟鎹灞傘傚惁鍒欎綘鐨勫簲鐢ㄦ槸涓嶆槸澶氬眰緇撴瀯,鎴栬呰存槸灞傜粨鏋勭殑鍒掑垎鍜岀粍緇囦笂鏄涓嶆槸鏈夐棶棰樺氨寰堥毦璇.涓嶅悓鐨勫簲鐢ㄦ湁涓嶅悓鐨勭悊瑙o紝榪欏彧鏄涓涓姒傚康鐨勯棶棰橈紟 鐞嗚ВASP.NET涓鐨勪笁灞傜粨鏋勨斺斾負浠涔堣佸垎涓夊眰錛
鎴戜滑鐢ㄤ笁灞傜粨鏋勪富瑕佹槸浣塊」鐩緇撴瀯鏇存竻妤氾紝鍒嗗伐鏇存槑紜錛屾湁鍒╀簬鍚庢湡鐨勭淮鎶ゅ拰鍗囩駭銆傚畠鏈蹇呬細鎻愬崌鎬ц兘錛屽洜涓哄綋瀛愮▼搴忔ā鍧楁湭鎵ц岀粨鏉熸椂錛屼富紼嬪簭妯″潡鍙鑳藉勪簬絳夊緟鐘舵併傝繖璇存槑灝嗗簲鐢ㄧ▼搴忓垝鍒嗗眰嬈★紝浼氬甫鏉ュ叾鎵ц岄熷害涓婄殑涓浜涙崯澶便備絾浠庡洟闃熷紑鍙戞晥鐜囪掑害涓婃潵璁插嵈鍙浠ユ劅鍙楀埌澶т笉鐩稿悓鐨勬晥鏋溿
闇瑕佽存槑涓涓嬶紝涓夊眰緇撴瀯涓嶆槸.NET鐨勪笓鍒╋紝涔熶笉鏄涓撻棬鐢ㄥ湪鏁版嵁搴撲笂鐨勬妧鏈銆傚畠鏄涓縐嶆洿鍔犳櫘閫傜殑鏋舵瀯璁捐$悊蹇點
姝ょ嶆灦鏋勮佸湪鏁版嵁搴撹捐′笂娉ㄦ剰琛ㄤ箣闂寸殑鍏崇郴錛屽敖鍔涙弧瓚充富涓庡瓙鐨勫叧緋匯傚湪鍔熻兘涓婂圭敤鎴瘋佹湁涓瀹氱殑闄愬埗錛屼笉瑕佽〃鐜板湪瀵逛簬瀛愯〃鐨勫垹闄ゆ搷浣滀竴瀹氳佹厧閲嶏紝浠ュ厤閫犳垚涓昏〃涓庡瓙琛ㄧ殑鏁版嵁鍦ㄩ昏緫涓婂嚭鐜扮殑涓昏〃鐨勫栭敭鍦ㄥ瓙琛ㄤ腑娌℃湁鐩稿瑰簲鐨勫箋傚逛簬琛ㄧ殑緇煎悎鏌ヨ㈡柟娉曟槸錛
鍏堝逛富琛ㄦ煡璇錛岃皟鐢ㄤ富琛ㄦ墍瀵瑰簲鐨凞L銆傚啀鏍規嵁涓昏〃鐨勮板綍鍒嗗埆瀵規瘡涓涓瀛愯〃榪涜屾煡璇銆傚皢鑷琛ㄧ殑鏌ヨ㈢粨鏋滄坊鍔犵殑涓昏〃鍚庯紝褰㈡垚涓涓澶х殑鏌ヨ㈤泦鍚堛
瀵逛簬琛ㄧ殑鎿嶄綔錛堝炲垹鏀癸級錛
姝ゆ椂鍙瀵逛富琛ㄨ繘琛屾搷浣滐紝璋冪敤涓昏〃瀵瑰簲鐨凞L涓鐨勬搷浣滄柟娉曘
RL灞傛槸閫昏緫鍒ゆ柇灞傦紝涓昏佹槸瀵歸〉闈涓婁紶鍏ョ殑鏁版嵁榪涜岄昏緫鍒ゆ柇銆俁L灞備箣涓婂氨鏄疷I濡備綍寤虹珛涓涓涓夊眰浣撶郴緇撴瀯瑙e喅鏂規
鏂板緩涓涓絀虹櫧瑙e喅鏂規堛傜劧鍚庯細
鈥滄坊鍔犫濓紞鈥滄柊寤洪」鐩鈥濓紞鈥滃叾浠栭」鐩鈥濓紞鈥滀紒涓氱駭妯$増欏圭洰鈥濓紞鈥淐#鐢熸垚鍧椻濓紞鈥滄暟鎹璁塊棶鈥濓紙鏁版嵁灞傦紝涓嬬畝縐癉灞傦級
鈥滄坊鍔犫濓紞鈥滄柊寤洪」鐩鈥濓紞鈥滃叾浠栭」鐩鈥濓紞鈥滀紒涓氱駭妯$増欏圭洰鈥濓紞鈥淐#鐢熸垚鍧椻濓紞鈥滀笟鍔¤勫垯鈥濓紙涓氬姟灞傦紝涓嬬畝縐癈灞傦級
鈥滄坊鍔犫濓紞鈥滄柊寤洪」鐩鈥濓紞鈥滃叾浠栭」鐩鈥濓紞鈥滀紒涓氱駭妯$増欏圭洰鈥濓紞鈥淐#鐢熸垚鍧椻濓紞鈥淲eb鐢ㄦ埛鐣岄潰鈥濓紙鐣岄潰灞傦紝涓嬬畝縐癠灞傦級
鍙抽敭鐐光滆В鍐蟲柟妗堚濓紞鈥滈」鐩渚濊禆欏光濓紝璁劇疆U渚濊禆浜嶥銆丆錛孋渚濊禆浜嶥銆
瀵筓娣誨姞寮曠敤D銆丆錛屽笴娣誨姞寮曠敤D銆
鍒版や負姝錛屼竴涓涓夊眰鐨勬灦瀛愬緩絝嬭搗鏉ヤ簡銆傛垜涓婇潰璇寸殑寰堝叿浣撳緢鈥滃偦鐡溾濓紝鐭ラ亾鐨勪漢瑙夊緱鎴戝簾璇濓紝鍏跺疄鎴戣繖孌墊椂闂村緢寮虹儓鐨勬劅瑙夊埌闈炲父澶氱殑浜哄叾瀹炲硅繖涓綆鍗曠殑榪囩▼瀹屽叏涓嶄簡瑙c傝櫧鐒朵笉鍙嶅瑰緩2涓鈥滅┖欏圭洰鈥濆拰1涓鈥淎sp net Web搴旂敤紼嬪簭欏圭洰鈥濅篃鍙浠ヤ綔涓3灞傜殑妗嗘灦錛岃屼笖鐩稿綋澶氱殑浜鴻や負鍏跺疄榪欎簺鈥滀紒涓氱駭妯℃澘欏圭洰鈥濆叾瀹炲氨鏄涓絀洪」鐩錛岃繖鏄涓涓璇鍖恆傛病閿欙紝浼佷笟綰фā鏉塊」鐩浣犱粠瑙e喅鏂規堣祫婧愮$悊鍣ㄩ噷鐪嬪畠鏄涓浠涔堜篃娌℃湁鐨勶紝浣嗘槸浣犲彲浠ョ敤璁頒簨鏈鎵撳紑欏圭洰鏂囦歡錛岀湅瑙佷笉鍚屼簡鍚э紵錛熸湁浜涗笢瑗垮湪鑳屽悗錛屼綘鏄鐪嬩笉瑙佺殑錛屼笉榪囩郴緇熷凡緇忓仛濂戒簡銆備篃灝辨槸璇達紝濡傛灉浣犲湪C灞傞噷鐨勬煇涓綾婚噷鈥渦sing System Data SqlClineit鈥濓紝鎴栬呬嬌鐢ㄤ竴涓猄qlConnection瀵硅薄錛岀紪璇戞椂鍊欎笉浼氬嚭閿欙紝浣嗘槸浼氬湪鈥滀換鍔″垪琛ㄢ濋噷鐢熸垚涓浜涒滅瓥鐣ヨ﹀憡鈥濓紝璀﹀憡浣犲湪C灞傞噷涓嶈佹斁搴旇ユ斁鍦―灞傜殑涓滆タ錛堣櫧鐒跺氨紼嬪簭鏉ヨ存病閿欙紝浣嗘槸鍙璇繪у彲緇存姢鎬у氨鎵撲簡鎶樻墸錛夎岃繖縐嶅姛鑳斤紝絀洪」鐩鏄鏃犳硶緇欎綘鐨勩 鍦ㄦ柊TraceLWord3涓錛屽簲鐢ㄤ簡鈥滀紒涓氱駭妯℃澘欏圭洰鈥濄傛妸鍘熸潵鐨凩WordTask.cs錛屽苟鏀劇疆鍒頒竴涓鍗曚竴鐨勯」鐩閲岋紝欏圭洰鍚嶇О涓猴細AccessTask銆傝В鍐蟲柟妗堜腑鍙堟柊寤轟簡涓涓鍚嶇О涓猴細InterService鐨勯」鐩錛岃ラ」鐩涓鍖呭惈涓涓狶WordService.cs紼嬪簭鏂囦歡錛屽畠渚挎槸鈥滀腑闂翠笟鍔″眰鈥濈▼搴忋備負浜嗕笉閲嶅嶅懡鍚嶏紝TraceLWord3鐨勭綉絝欒鏀劇疆鍒頒簡WebUI欏圭洰涓銆傛洿瀹屾暣鐨勪唬鐮侊紝鍙浠ュ湪CodePackage/TraceLWord3鐩褰曚腑鎵懼埌鈥斺 闈㈣薄瀵硅薄涓庡疄闄呯殑緇撳悎
鎴戜滑鐭ラ亾寤烘ˉ闇瑕佺爾鍧楋紝搴旇ユ槸鍏堝噯澶囧ソ鐮栧啀鏉ュ緩妗ワ紝涓嶈繃涓轟簡璁茶В涓婄殑欏哄簭鎬у拰榪炶瘡鎬э紝綆鍗曟с傛垜浠鍏堝緩妗ワ紝寤虹殑榪囩▼涓闇瑕佺爾鍧楀啀鐜板仛錛岃繖鏍峰氨涓嶄細澶氬嚭鏉モ滄ˉ涓嶉渶瑕佺殑涓滆タ鈥濄傛敞鎰忓湪瀹為檯涓錛岃繕鏄搴旇ュ厛鍑嗗囩爾鍧椼
U灞傚叾瀹炲氨鏄妗ワ紝C灞傛槸鐮栧潡錛孌灞傛槸鍘熸枡錛堢煶澶淬佹矙瀛愶級銆傝繖涔熻В閲婂墠闈涓轟粈涔圲灞傝佸紩鐢ㄣ佷緷璧朌灞傦紙鑰屼笉鏄疷瀵笴錛孋瀵笵鐨勫眰嬈★級錛屽洜涓烘ˉ闄や簡闇瑕佺爾澶達紝鍏跺疄涔熼渶瑕佺煶澶存矙瀛愩傗滀笁灞傜粨鏋勨濈殑緙虹偣 鏈変簺緗戝弸鍦ㄨ誨畬榪欑瘒鏂囩珷鍓嶄綔涔嬪悗錛屽規垜鎻愬嚭浜嗕竴浜涜川鐤戱紝榪欐彁閱掓垜鏂囩珷鑷蟲よ繕娌℃湁鎻愬強鈥滀笁灞傜粨鏋勨濈殑緙虹偣銆傗滀笁灞傜粨鏋勨濊繖涓璇嶇溂浼間箮涓鐩撮兘寰堢儹闂錛岀┒鍏跺師鍥狅紝鎴栬告槸榪欑嶅紑鍙戞ā寮忓簲鐢ㄧ殑姣旇緝鏅閬嶃備絾鏄鈥滀笁灞傜粨鏋勨濆嵈騫朵笉鏄鐧捐瘯鐧劇伒鐨勨滀竾鐏佃嵂鈥濓紝瀹冧篃瀛樺湪鐫緙虹偣銆備笅闈㈠氨鏉ヨ磋村畠鐨勭己鐐光︹︹滀笁灞傜粨鏋勨濆紑鍙戞ā寮忕殑涓涓闈炲父鏄庢樉鐨勭己鐐瑰氨鏄鍏舵墽琛岄熷害涓嶅熷揩銆傚綋鐒惰繖涓鈥滄墽琛岄熷害鈥濇槸鐩稿逛簬闈炲垎灞傜殑搴旂敤紼嬪簭鏉ヨ寸殑銆備粠鏂囦腑鎵緇欏嚭鐨勬椂搴忓浘鏉ョ湅錛屼篃鏄庢樉鐨勬毚闇蹭簡榪欎竴緙虹偣銆俆raceLWord1鍜孴raceLWord2娌℃湁鍒嗗眰錛岀洿鎺ヨ皟鐢ㄧ殑ADO.NET鎵鎻愪緵鐨勭被鏉ヨ幏鍙栨暟鎹銆備絾鏄錛孴raceLWord6紜瑕佺粡榪囧氭¤皟鐢ㄦ墠鑳借幏鍙栧埌鏁版嵁銆傚湪瀛愮▼搴忔ā鍧楃▼搴忔病鏈夎繑鍥炴椂錛屼富紼嬪簭妯″潡鍙鑳藉勪簬絳夊緟鐘舵併傛墍浠ュ湪鎵ц岄熷害涓婏紝鐣欒█鏉跨殑鐗堟湰瓚婇珮錛屾帓鍚嶅嵈瓚婇潬鍚庛傗滀笁灞傜粨鏋勨濆紑鍙戞ā寮忥紝涓嶉傜敤浜庡規墽琛岄熷害瑕佹眰榪囦簬鑻涘埢鐨勭郴緇燂紝渚嬪傦細鍦ㄧ嚎璁㈢エ錛屽湪綰跨倰鑲$瓑絳夆︹﹀畠姣旇緝鎿呴暱浜庡晢涓氳勫垯瀹規槗鍙樺寲鐨勭郴緇熴傗滀笁灞傜粨鏋勨濆紑鍙戞ā寮忥紝鍏ラ棬闅懼害澶熼珮錛岄毦浜庣悊瑙e拰瀛︿範銆傝繖鏄瀵逛簬鍒濆︾▼搴忚捐$殑浜烘潵璇寸殑銆備互榪欑嶆ā寮忓紑鍙戝嚭鏉ョ殑杞浠訛紝浠g爜閲忛氬父瑕佺◢紼嶅氫竴浜涖傝繖寰寰浼氫護鍒濆﹁呮飯娌″湪鑼鑼鐨勪唬鐮佷箣涓銆傛湜涔嬬敓鐣忥紝瀵瑰叾浜х敓鍙嶆劅錛屼篃鏄鍙浠ョ悊瑙g殑鈥︹﹀叾瀹烇紝鏃犺哄摢涓縐嶅紑鍙戞ā寮忔垨鏂規硶錛岄兘鏄鏈夊埄鏈夊紛鐨勩備笉浼氬瓨鍦ㄤ竴縐嶁滀竾鐢ㄦ硶鈥濆彲浠ヨВ鍐充換浣曢棶棰樸傛墍浠モ滀笁灞傜粨鏋勨濊繖涓璇嶇溂涔熶笉浼氭槸涓渚嬪栵紒鏄鍚﹂噰鐢ㄨ繖涓妯″紡榪涜岀郴緇熷紑鍙戱紝瑕佷綔鍑烘瘮杈冦佹潈琛′箣鍚庢墠鍙浠ャ傚垏蹇屾互鐢!
C. 三個並列的plc程序該怎麼寫
其實在寫PLC程序的時候,除了要寫自動模塊外還需要寫的模塊還有很多,手動模塊、報警模塊、軸狀態模塊、軸定位模塊以及可寫的配方模塊。
電氣工程師在寫PLC的時候大多數都是喜歡按照個人的分類習慣來分模塊寫程序,這樣也利於後期的修和可擴展性。
本文只是站在作者的角度和習慣上分享一下怎麼寫PLC程序和注意事項。
1.手動模塊。
一般情況下項目開發時間短,基本上都是先簡單寫手動的程序以及觸摸屏簡單的功能以便方便調試機器的相關位置。
手動程序主要涉及有氣缸的手動、軸的手動控制、以及其他部件的控制停止觸發即可。
氣缸的手動:
如圖,包含了氣缸的手動控制和真空打開和關閉的控制,該手動運用了ALT這個指令,這個指令的意思為:每一次觸發與上一次相反,比如你第一次按下R2000的時候是打開氣缸,再一次按下R2000時候則是關閉該氣缸。在這里要特別注意的是氣缸有分單工位和雙工位區別,當氣缸是當工位的時候則如圖R2000所示,當氣缸是雙工位的時候如圖為R2001所示,所以單雙氣缸的手動區別就在這里,雙氣缸在打開一端時候需要關閉另外一端即可。
這里詳細講解一下雙氣缸手動的程序,R30C是氣缸的工位,R30D是氣缸的原位,當第一次按下R2001時候,則觸發氣缸打開,則R30C會有信號,變亮;當R30C有信號的時候,則復位R30D,所以這里的邏輯就是觸發一次R2001時候,則R30C得到信號,而R30D則關閉信號,這就使得氣缸到達工位,復原原位。反正,再次觸發R2001時候,則打開原位信號,關閉工位信號。