版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
11-1-參考答案:
新建函數(shù)FC101BubbleSort,參數(shù)聲明:
FC101_BubbleSort
名稱數(shù)據(jù)突叁默認值密控注修
句▼Input
<3■enableBool回使能
0■mode8ool排序方式-6?升序.1會席
-d▼Output
■帝熠〉
<2▼InOut
<1■??rr?y$ortArrey(*joflot畏排序的數(shù)組
<S▼Temp
0?iDint僵環(huán)式復,
43■jDint值環(huán)變面
<2■tmplntInt忸忖費置mt
O■tmpLowBoundDim
49■tmpUboundOlnt
編寫代碼:
IF#enableTHEN
〃獲取數(shù)組上限
#tmpLowBound:=LOWER_BOUND(ARR:=farraySort,DIM:=1);
〃獲取數(shù)蛆下限
ItmpUbound:=UPPER_BOUND(ARR:=larraySort,DIM:=1);
〃冒泡排序
FORli:=#tmpLowBoundTOftrnpUboundDO
FOR#j:=#tn^)LowBoundTO(#tmpUbound-#i)DO
IFNOT#modeTHEN
〃升序
IF#arraySort[#j]>tarraySort[#j+1]THEN
#tmplnt:=#arraySort(#j+1];
larraySort[#j+1]:=larraySort[#j];
tarraySort[#j]:=#tmplnt;
END_IF;
ELSE
〃降字
IF#arraySort[?j)<tarraySort[#j+1]THEN
itmplnt:=#arraySort[#j+1];
#arraySort[#j+1]:=farraySort[#j];
#arraySort[#j]:=#tn^)Int;
END_IF;
END_IF;
END_FOR;
END_FOR;
END_IF;|
11-2參考答案:
新建“圓面積”全局數(shù)據(jù)塊,并定義LReal類型的“圓面積”數(shù)組,用于存放計算結果:
國面積
名稱效據(jù)受為起拍值保槨從
4J▼Static0S
00□
3<3"QfilRlOlLReal0.000
4■LReal0.000
543■圓砌HILReal0.00M
6匈■圖硼⑶LReal0.000
7O■圖瑜4]LReal0.000
8■LReal0.000
9<0"圓硼⑹l艇50.00M
10■圜硼⑺LReal0.0
0回
11<3■圜瑜8]LReal0.000
12@aa°i9iLReal0.00
回
1390圓砌U011410.0
14■
新建“FC圓面積"函數(shù),接口區(qū)及SCL代碼如下:
11-3參考答案:
11-4參考答案:(略)
11-5參考答案:(略)
11-6參考答案:
在實際中,我們經(jīng)常需要設定一個時間去和PLC系統(tǒng)時間進行比較,從而觸發(fā)我們需要的
定時事件。
首先添加FC,建立如下變量:
1句▼Input
2包■yearUlnt
3<3■enableYearBool
4句■monthUSInt
5立2"enableMonthBool
6匈■dayUSInt
7<3"enableDayBool
8@■hourUSInt
9W3"enableHourBool
10&■minuteUSInt
11<3"enableMinuteBool
120?secondUSInt
13WJ■enableSecondBool
14包■weekUSInt
15O■enableWeekBool
16匈"localTimeBool
17■CJ?Output
18??InOut
19<3▼Temp
20@]"tmpRetValInt
2143■tmpOutRangeBool
22@?>tmpActuallimeDIL
23包>Constant
24奮▼Return
25■O■ClockAlarmBool
編寫SCL代碼:
3〃愴充箴入欠是否有效.
4?tspOutlUnge:?((2554<?i'earOR*y?ar<19701JtfDEnableYearICRicspHOMuUUnge
5<(12<tnonthOR*snnth<1)ANDtenableNoath)Oft3y
6<(31<MayOR?day<1)AND?cn&bleD?y>CR
<<23<tbourORIbour<0>AND?enableHour)OR*haour
8<<59<tslnuteORtsiinute<0)AMD?enableMinute)ORnuS
9(<S9<tsecoedOR?9BUOM<0)AKD?enableSecond}OR?3ieH
10(<7<4we?kOR<1)AJR>;
11
12〃我:果他入犍無效.復{ZPloukUg".
13]XF4tspCutJUr>ge-trueTHEN?謔果
14KlockAlanifalse;?ClockAlar?
15RETURN;
16ncp_xr;
17
18〃工者繼時?【£發(fā)系就時傅.
19E3IF<lacalTme-trueTMDC?9票TRUE
20?tnpftetValM>-L0C,T<*a<iActuain??):▼?tBjtfletVal0
RD_LOC_H0
ttspJlctuaniDe£TU2018-12-2?-i0:i0:49.iy73?3951
ELSE
?tBf*etVai:-RD-SYS.KiwpActuBlTiat);卜
rWD-TFy
25〃艙入僮二配?*±-CIO€?ltr?*.
26fClockXlara:-((tyear-iu^lctoeITine.YEAR)OR?>THtubleYear)JUTDTF.JE
27((tsoath-IttpActualTise.MOtfTH)ORNOTtenableMoith)AXD<aonth
28(<?day-4upAccualTxse.EAY)ORNOT#enableDay)AfiD?<Uy
29(<?bour-*txpAccualTlMt.BOUR)CRWOTHnableBounAXD?hour
90((tsinute■ttDpActualTisie.MIffiJTE)ORHOTtenable:4inute)AXDt&inute
31((?-nd?ttspActualTixe.SECOND)ORXOTlenableSecond)AXD?aecood
32(<?ve?k-*cxDAccualTXM.KWCDAY)ORHOTHnabKKwlr);
11-7參考答案:
添加FB塊,建立變量:
項目1?PLC_1[CPU1214CDaDaDC]?程序塊?stringDate_to_dateDate[FB1]
承■凈士AE出名2附小加物錮w專"有亙第''id
stringDate_to_dateDate
名彌數(shù)據(jù)類2J默認值保持
包▼Input
2<3■stringDatelnString昨保持
3■扇替
4包▼Output
5句"dateDateOutDateD#1990-01-01非保持
6■扁替
7O?InOut
8O▼Static
9<3-stringYearStnng章保持
10O■stringMonthString輩保持
11|O■stringDayString非保持
12包■uintYearUlnt0車保持
13<3■usintMonthUSInt0車保持
14O■usintDayUSInt0聿保持
15?ddDateD1LDTL#197001-01-00:00:00攣保持臼
編寫程序,如下:
1RKTUIUNapliz
2tstxingYear:-LEFT(IN:=tstringDateln,L:=4);>istringYear■2018,
IstringMonth:=MXD(XN:=IstringDateXn,L:=2,P:s5);,IstringMonth■12?
4fstringDay:=MID(IN:=fstringDateln,L:s2,P:=7);?tstringDay?20e
5[BND-REGION
6
7AR2GI0Nconvert
fuintYear:■STRIWG_TO_U!Wy(l?tringY?ar);>luintYear
9tusintMonth:=STRING-TO-USINT(tstringMonth);?tusintMonth—12—
10fusintDay:■STRXNG_TO_USXNT(IstringDay);>lusintDay20
ii[END_REGION
12
13早REGIONDTL
14IdtlDate.YEAR:=tuintYear;?IdtlDate.YEAR2018
15fdtlDate.MONTH:=fusintMonth;>fdtlDate.MONTS12
16IdtlDate.DAY:=tusintDay;>tdtlDate.DAY20
17ENDREGION
18~
191dateDateOutDTL_TO_DATE;>1dateDateOut“2018-12-20
20
21
11-8參考答案:
〃不使用R_TRIG生成上升沿
□IF"Triger2"ANDNOT-TrigerZOld-THEN?■IUSB■!
?Triger2Ris"TRUE;?Triger2Ris-IMO.4
£L3E
-Triger2Ris-FALSE;?Triger2Ris-?M0.4FALSE
EKD-IF;
〃遇到上升沿ResulxZlBl
?Triger201dw-TrigerZ";??Triger201d"?M0.3TRUE
□ir"TrigeraRis-THEN?FALSE
"ResultZ"wResult2"?1;▼.Result?-%MW12
Result2"
EHD_IF;
11-9參考答案:
創(chuàng)建“溫度控制”函數(shù),接口參數(shù)如下:
溫度控制
名稱數(shù)據(jù)類加
Q▼Input叵
:9-溫度設定值Real
:O-實際溫度值Real
二<2■允許誤差值Real
59▼Output
6?□?風扇Bool
7<2■加熱2sBool
S▼InOut
■
,0<3▼Temp
9?上螂值Real
120?下螂值Real
▼Constant
14?奇野
?5▼Return
'<2?溫度控制Void
編寫代碼如下:
3?上核艱宜?溫度設定也+0-1*?允許演費宜;
4?下極限僚:-,鴻度設定d-0.1?■允許謖差僚;
5
6E1IF?實際溪度值>?上極限值THEN
7?風.國:?true;
81ELSE
9SIIF?實際澧叟且<-?上核限篁THEN
10?風扇:?false;
11END_IF;
12[END_IF;
13
14niF?實際海曳也<?下怪雙也THEN
15?加熱器true;
161ELSE
17RIF?實際溫度道>>?下15泯宣THEN
18?加熱都:■false;
19END_IF;
20i
ENDIF;
11-10參考答案:
求平均侑
名梆數(shù)掘靠經(jīng)3?最大B0;
1<□▼Input46平均值0;
2■向fib
3<□▼Output6EF0R?11TO10DO
4?a■最大值Int
7?雙整數(shù)欠:-INT_TO_DINT("數(shù)據(jù)拱一廣.震拈數(shù)據(jù)[”]);
5<2■平均值Dim
加僮:-雙整數(shù)僮+累加”;
6Q,InOut8?JR??
7Q▼Temp97IF"數(shù)搪塊」”.原始數(shù)捐>?最大原THEN
?最大足:-“數(shù)指會二”.原拈數(shù)據(jù)【”】;
8?a■果演值Dint10
9?a?iInt11.ENt_IF;
10?a■雙整效值Dint12[l
ENDFOR;
11Q>Consunt
13
12O▼Return
13■a■求平均值void國14,平均僮:-?累加僚/10;
11-11參考答案:
新建工程,然后為PLC啟用時鐘存儲器字節(jié)MBIOOOo
新建FC功能塊,接口定義如下:
點疝金)三Lm目=臼w上啟土物土國畫屯9
名稱效據(jù)克a?SiAll
1O▼Input
2<3>RUNBool運行信號
3?▼Output
4■
S?▼InOut
64□?puk.tempBool上升3中同位
7?度SETBool時用|o
sg?單次運行,J明
9O?單次運行分料
'0<□"單次運行效
■Q?總運行d'M
:-Q?總運行分14國
13-a?eisfi?
14<2■intTemp按耳位枝揚的時間
:<3▼Temp
16O■BWBool中同位
FC代碼如下:
首先是一個程序段的梯形圖,程序如下,因方便查看,所以就沒有用秒脈沖,用的0.1S的
脈沖,真正使用時可調(diào)整為秒脈沖:
▼程序窿1:
接著插入一個SCL程序段,程序如下:為了防止操作員誤按下時間清零按鈕,所以加了一個
5秒長按才能清零程序
〃計秒
IF#TEMPTHEN
#單次運行秒:=#單次運行秒+1;
#總運行秒:=#總運行秒+1;
ENDJF;
〃計分鐘
IF#單次運行秒>二60THEN
力單次運行分鐘:=什單次運行分鐘+1;
#單次運行秒:=0;
ENDJF;
IF#總運行秒>=60THEN
#總運行分鐘:=#總運行分鐘十二
#總運行秒:=0;
ENDJF;
〃計小時
IF#單次運行分鐘>二60THEN
#單次運行小時:=#單次運行小時+1;
#單次運行分鐘:二0;
END」F;
IF#總運行分鐘>二60THEN
#總運行小時:=#總運行小時+:;
#總運行分鐘:二0;
ENDJF;
〃不運行,單次時間都為0
IF#RUN=FALSETHEN
#單次運行小時:=0;
#單次運行分鐘:=0;
#單次運行秒:=0;
ENDJF;
〃需要長按清零按鈕5秒,才可以清零,防止誤按。
IF#intTemp>=50THEN
#單次運行小時:=0;
#單次運行分鐘:二0;
#單次運行秒:=0;
#總運行小時:=0;
#總運行分鐘:二0;
#總運行
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字化咨詢競爭格局-深度研究
- 二零二五年度城市道路綠化帶清掃保潔合同
- 二零二五年度文化產(chǎn)業(yè)發(fā)展連帶責任擔保合同
- 二零二五年度寫字樓裝飾工程施工合同
- 二零二五年度員工持股計劃股票期權合同
- 二零二五年度產(chǎn)業(yè)園區(qū)土地租賃合同
- 2025年粉木冶金制品項目投資可行性研究分析報告
- 2025年中國玻璃紙市場調(diào)查研究及行業(yè)投資潛力預測報告
- 2025年中國蠶絲及交織機織物市場供需格局及未來發(fā)展趨勢報告
- 2025年中國補血藥行業(yè)市場調(diào)查研究及投資前景預測報告
- 工程造價咨詢服務投標方案(技術方案)
- 2024統(tǒng)編版新教材道德與法治七年級全冊內(nèi)容解讀課件(深度)
- 籃球俱樂部合伙協(xié)議
- 電力基建復工安全教育培訓
- 2018注冊環(huán)保工程師考試公共基礎真題及答案
- 勞務經(jīng)紀人培訓
- 如何提高售后服務的快速響應能力
- Unit-3-Reading-and-thinking課文詳解課件-高中英語人教版必修第二冊
- 婚介公司紅娘管理制度
- 煤礦電氣試驗規(guī)程
- 物業(yè)客服培訓課件PPT模板
評論
0/150
提交評論