RSRC LVINLBVW p!< @aiBORW F[NM3qُ B~0ُ B~sfc1}Zzg5:@Z PGVi LVIN PID Demo.viLVINDAQmx Start Task.viPTH09DAQmx configuretask.llbDAQmx Start Task.vi $@pTaskNIDAQtask/channels in@pTaskNIDAQtask out @!status @code@0source@Perror in@P error outL  DAQxDAQxPOLY DAQmx Read.viPTH0)DAQmxread.llb DAQmx Read.viqe^DAQxDAQxLVIN&DAQmx Read (Analog DBL 1Chan 1Samp).viPTH0BDAQmxread.llb&DAQmx Read (Analog DBL 1Chan 1Samp).vi $@pTaskNIDAQtask/channels in@pTaskNIDAQtask out @ data @ timeout @!status @code@0source@Perror in@P error outL   DAQxDAQxLVIN simple PID.viPTH0 simple PID.vi @ output value@ lower limit@ upper limit@ process variable@ D@ I@ P@ set point< x  POLYDAQmx Write.viPTH0+DAQmx write.llbDAQmx Write.vi[. DAQxDAQxLVIN'DAQmx Write (Analog DBL 1Chan 1Samp).viPTH0DDAQmx write.llb'DAQmx Write (Analog DBL 1Chan 1Samp).vi $@pTaskNIDAQtask/channels in@! auto start@pTaskNIDAQtask out @ data @ timeout*@%number of samples written per channel @!status @code@0source@P error in@P error outL     DAQxDAQxLVINDAQmx Stop Task.viPTH08DAQmx configuretask.llbDAQmx Stop Task.vi $@pTaskNIDAQtask/channels in@pTaskNIDAQtask out @!status @code@0source@Perror in@P error outL DAQxDAQxLVINSimple Error Handler.viPTH06Utility ERROR.LLBSimple Error Handler.vi @!error?@code out@error code (no error:0)@0error source (" ")@0 source out @!status @code@0source@P error out@0message9DialogType.ctl!@type of dialog (OK msg:1) @Perror in (no error)4      cx d0` P c @flg@oRt@eof@Pudf @!status @code@0source(@P error out for input channel!0@Pdfd@Ptxd@Pold@PextP  P c$@pChannelNIDAQOutput Channel@pChannelNIDAQdfd@pChannelNIDAQtxd@pChannelNIDAQold@pChannelNIDAQextP  c "@pChannelNIDAQ Input ChannelP *@P error out for output channelP  c?@ PID output chart@ dfd@ txd@ old@ extP #$%&' P** @+*P))*****,--*** @. @6P--011-222-**--******3 @4 @3 P777 @8PP @;P****P **--**=** @> P /5695:6<? @2PAPB**-B @PDDD; P2- @F*P222222222******--G c@ process variable chartP J$%&'@ Set PointP L$%&' P222 c@ setpoint chartP P$%&'@ Loop Delay (ms)P R$%&' c0 @!stop@!dfd@!txd@!old@!extP UVWXY c@ P@ I@ D@ Upper Limit@ Lower Limit"@P\]^_`tuning parameters@P22222dfd@P22222txd@P22222old@P22222extP abcde @- @0 Pgh c$ c d@P error in@P error out c c(@millisecond multiple@error code (no error:0)a`U9DialogType.ctl!@type of dialog (OK msg:1)_ @!error? c@code out^\o@0messageRL]@0 source out@0error source (" ") c c@ output value@ lower limit@ upper limit @ timeout@! auto start c@ set point*@%number of samples written per channel @ data c c7 cl c c| cD c c `>P**)))))))))))))))) d $P****** dH d c0!0"(@ CE H H IK@ CE H H IMN0H OQ@ CE H H ISN0H TZ[fN0N0N0N0N0i i jkl0mnnonnnnnnnnnpqrnstunvwxnnnnnynnnpz{|}nnnn~nnnnnnn|nnnomnnnnnnnnnnn}nnun{ynj |nnn]^nnnnnnnnn\nnnm|nnnnnnnmRL\]^_`U000aoo0n xVMHTQ>q2 [ Q!CAr7BAZTDT闊"lSeHjhZSڏEoݙ$:p{޽yD4x5=VĀ)`.2Am/%B9WH8ns XD37g4xd\)9&-桭rfI:+w<\):Ҷp.E|:?6Kf&c!p۪@Ѵ'K17k4|#ku4F;{۾i%F3fyu* ;'ݻv#O?l4s'WFhr=B7CfȂMυh͕P-hUe_Uا/c`"o KR2A7<ED؀IX~D=ziȌR^ϼPiuEeiDDP;FRC7F_:6ȯAdsYұ6[QF݂fr yl!F$n۳8˂u:6jrGeXxE߶Kċ@ǂu9c5g+gsr5P@^|Lou'_|AGzm߷ڏ{N<Լ!w$aG/=7^ ȟQH6C̻M82\W0VIDS PID Demo.viVIDS simple PID.viPTH0 LVIDSSimple Error Handler.viPTH0 t dVIDS'DAQmx Write (Analog DBL 1Chan 1Samp).viPTH0 TVIDSDAQmx Stop Task.viPTH0 l \VIDSDAQmx Start Task.viPTH0 < 4VIDS&DAQmx Read (Analog DBL 1Chan 1Samp).viPTH0 D#xZ pT~Oٟ~DAdj53`m:@n'y5&b`BM-'84U"?$j{Ns߹;;w}w](?Xz C{m(&W,X 1\cm5VN!n7"s<})n/SZH˕Tp.\7ףU)J®[Wj(j(KUPcCÑ&/:T }rXKM(qMWw+^M/ӂ (ZzZkj[SӶ#0|&>RM93FI0|S>XՔOGE[X|g܁}pR/ntEn4~ :>ǷE:RV zԽ2ցJ! ^_|8Dʨt4*P)5XN|ݾb&ȱ3VV-B †CQ+qrFH1EbF,qŌYר@騈&L$̦ S`6~wĻff%f&Cbɛet(_}78VXWN?`_dپ#1?phHTRT"&U\"G98WIƜ$f ]K'[.q"..3ڬpۂ׮= U ʋ>яaS?wƴ (L]|PW4w a!=̱ww%݆Pv٥F C{Ivoh%g?;^ wo T&CBh5[6oE'$$?LE`ԥoF8"q6>*~q~@1:RpplgMƙ炎-5z"@fNXIZJM5dj+ärHYak􈏻7f8rJȕqq98H3n'>3@Ȓ,R<$l<݈ 2䓹]D'##2!W)Yau E>vo9y2B$y"Őjj3kF켉p{P&\̐>Eb-Ph%Tp˗B䄕"%"Jan7ó0q!r˞'"rheȸZUa'#FWzc*ƞezsuc' nPhc|6t,tzѦ\Nxk2!w4qՃP ׮kɡP?kINs98 ^9dGwzP\HWZm&l2D9j֦.?wQ?2}DZ?i)F΢X|lj9Z B005-% m/Ѯ&JZ%5Vh6Da :ڣDh)xG"O4r"<qD>h* ]BRy6JhY/n Ð0 9z!֦Ǘ^#rᨗsҍ09C 0C#Шs%g/QzytR ]k5b{@ u^~557}Hr! 8$<@zFN<j!9DtՄ&Qj𞋊Rn!忏-kf|W¿JϴڌG}#EJW+7~|&CO!&36gSw4b\`u:"7#`bT=PN|C'i-9-G P@q_\ D1x01 69)- N~i̴:{h0T'_f3>\.3w&Vt-;fYƦUI<۪؝P D'6;(b/m=ǡ.dD(Kr<C ' UЉy K ?ß=xD |_r0NjߞO6&P9K l4Es\} ) ?ET!&OPyG r+# ߳<(k%-^)aɊu+o/=l_Vt_ZӅ?w8 -\WRhR׭W:9+]eyo~۳зW[\BKVpK+lqQFU?  8.2 P @!stop@ Loop Delay (ms)@ P@ I@ D@ Upper Limit@ Lower Limit"@P tuning parameters@ setpoint chart@ Set Point@ process variable chart@ PID output chart @!status @code@0source*@Perror out for output channel"@pChannelNIDAQ Input Channel$@pChannelNIDAQOutput Channel(@Perror out for input channelP   P pThe PID Control Loop VI is designed to be connected to your external system. Enter your Device number for your input and output device. These can be the same DAQ device. Connect the Process Variable you want to read to your chosen Input Channel. Connect the PID output from the chosen Output Channel to your system. Run the VI. Choose a Set Point value to which you want your system to adjust. The Tuning Parameters can be used to adjust the PID output to control your system. This is a software timed control system where the Loop Delay controls the rate of acquisition and generation. View the help window description of each control for more information about its use. yg$퐈IAAAAAAAA(A(A((D[. $@pTaskNIDAQtask/channels in@! auto start@pTaskNIDAQtask out @ data @ timeout*@%number of samples written per channel @!status @code@0source@P error in@P error outL    P @PP@ PID output chart@ Set Point@ setpoint chart! @!stop@ Lower Limit@ Upper Limit@ D@ P@ I"@P tuning parameters@ process variable chart@ set point@ process variable@ upper limit@ Loop Delay (ms)@ lower limit@ output value@millisecond multiple@millisecond timer valueqe^L   P+,"@pChannelNIDAQ Input Channel 7 @!error?@code out@error code (no error:0)@0error source (" ")@0 source out@0message9DialogType.ctl!@type of dialog (OK msg:1) @P error in (no error)4 01234 567  < ('%$ #x pOldNIDAQL   $@pChannelNIDAQOutput Channel 70P> @?*@P error out for output channelL    (@P error out for input channel  !! "! # $%& &'()*-  ./.876"5 9432:10;  <</ :==@?>@?>@?>A A  ;  B  B 210C C34 5678FPHP PID Demo.vi$4355Select and Set Channels First Before Run the ProgramRDgtgtsourceH{{PD:G:GcodePD:G:GcodeHN[N[RD$;H;HstatusM$IVIVPPanegDerror out for input channelhD}}error out for input channel ZDnnOutput ChannelH$w&vYDgg Input ChannelH$w&vRDgtgtsourceH{{PD:G:GcodeHN[N[RD$;H;HstatusL$IVIVPvvPanehDbobo error out for output channelhDq~q~ error out for output channelD$`z`z>For instructions select File >> VI Properties >> DocumentationVD PID Output\D7D7DProcess VariableTDSetpointN+S-R0.\D7`Q7aQPID output chartH=w?vP^w_wPaneHCVEUHHDqs~qt~N$,1T$.1S0.bD`aprocess variable chartHo=|wo?ovPY^fwY_fwPaneHWCdVWEWUHDCPCPHDUD$ Set PointUD$"" Set PointNc&p-c'p- Hbo bo HD?L,?L,N+S-R0.ZDI`VIaVsetpoint chartH=w?vP^w_wPaneHCVEUHDHDrorp[D$n!n!Loop Delay (ms)[D$Loop Delay (ms)N&-'- H  HD''P8R9RstopP$H{I{STOP^DFLSFMSOutput Lower LimitWDUbFUbF  Lower LimitHXUeXVe^DL M Output Upper LimitWD"/F"/F  Upper LimitH%U2%V2MDrrDMDDH//MDCPCPIMDQ^Q^IHTa/Ta/MD!!PMD"/"/PH%2/%2/P Pane]D..tuning parameters]D m mTuning ParametersPBOBOPanecD)J)ISimple Error Handler.vi_DUbUbDAQmx Start Task.vi_D+ + DAQmx Start Task.vi^D|*~*DAQmx Stop Task.vicDS`HS`GSimple Error Handler.vi^DS|`S~`DAQmx Stop Task.viYD[] simple PID.viHD$YXZDU1bU3bDAQmx Write.viHD$YD** DAQmx Read.viHDA"WB"WHDAPA[HD<nI<oIHDUU HDHDW X HDHDi5vi6vHDAB HDW7dW8dHD-!:-": ZPNG  IHDRZmIDATx F̞2F(NuB[4y4 D^R1s3tx aD۵P!\ec?6X/2p4vn}Ka+jIENDB`TPNG  IHDRZsIDATx @MN:@T)-="T!}oED_Θy"P-5\Kj@, Oi߬XQ#^i+}`4`1۸! IENDB`!device!@7 limit to device displayFilter!  projectFilter!@project filter!device!@7 limit to device displayFilter! projectFilter!@project filter   ww  >B >@  .. *8 8> ?A  &!   xx      Ejx\ |չff7$lBdfـK06  o,$qw*XPR>^k>lW-moZZ^Riٙ33$j2ߙsfWIrn 5 ؛AL̗eϺWq몹Ay-DX}bWk}?$} hST^WK<ϧ|%=Gr1frv66NL? _9xdjW ;vj!I!^ p=wpW q)~Tg&益vex!t - wSڋz~8=r4^8C˻C]'h×vȽפsvicZ/Xva,^0kمb, ;@0 cb/DCFF#Q?q?Ƌ I;ޙ}b7I-zhB7ibgoPx[$ #}q \[[7W :ιt9 #NҠ[zw 8$%0%ϭ`^P[csvq3p3iKp`PAcy5Nxpr6+8tԙy)Nǔ,!8pYa qip:<ɣygEfp:Y~D l! r| ^4yI. V38.컪#pE2'+\gNF:p La/\S^u0i ra˳0^${::L6aB0quǧUa6J*JU:+ sZ`젛{#v]nw4Np_wj'vGe{F{jW&;pPsU͂;VW{JeeݑN.8&PW<E660ѐ>7-qdf'bm'`IlLQ~]Rخ?vRr=O4vf&u <5un:4;vʆty \@k&]O<乎W {@Cr A,f|C/>I4f;X;aN۝RNe:6#te|Ҷ~teNG^OC  Axa݋X"ñ'ufOf)~=~rp]38x2:x]SXn;)gBhvn BVAS&\S9 kݓjD'lZ SՄZ{J}3jG^RK0Vi<-ʙ* AtA>|2jAm'kQ+]+8Eq6T0,yPCͥf?* 6z%W3}aIP~M J_N abشMf@fjR 7HSu1JBh.C>x.[]:maՂ^FX>s: `5k-4;J8QZ|%=?"*.,G'A~JT ޣ8OF_H o}J-i t ;n]_6Cn2~URCuz}TZ4،8hHjz$$V.SGslǫ0(]iszs& t4bMmKm-ǶC[g0 Sv0H` <;Ɉu:R` GhwByJ= S% )#`9GGBs[~@"ϧbki`-5oRza]kC_p_o=ѿVg\* dX`G_4 ~w_0MbcH̼qm_(}*[2BmaY5YY;ŬQgumJH[*znY*VXX;ѱ`uXVa~]d[XVwannNIVLe,{YguG|cu-,3dbuQ3:, AVۖ# ¬ϔU)n0X]hn{mX\duVsfǰXKmٱiV7OweuuYXtVc`g󍮇-_juH6VFV7+S3YASArhCV)4:(ْc=މF)Oڂqq-yՌD,!#qgPe_dd<;vP$]1ݓgr\5.>y^O:'J_#$Xyj kU>?yۿY p>.-@"T6H.;Ʌ2SahzZ`X ]Mې^Z؍o\ h$5֑aƞ$ژune&^=dICf1yxOB&A$.5 \H^޸'ymۗь̇z0R,G~Ɛ}[)6y- lN>5/LaR?1 l6:Fz@v!Ƀ\6UnfՙP`l`</zhmP: 6#wzX1 lmP`lr.) $ܻ"G27m3S_"pXftQlM˥љCɼ7[^n ]?L l lC#r W`+6ft[qXF`Ȏg lm%>?RmiFmlC#ؖ l{kF*-*]Y6_:[l-F ll6pkTmLFmp]d#-ZguV lcf]*IVAy&dTvV fyjvu,.gx.m?Cj){7 lѨgX׷4ֵrd]WH vw =iHhO(M~ Dj֦/ʢ|~ei}y f=^aU.iZVm4˧tlM6eOT䦶ն?Nm[gRmy&ն'>j1gնir%9lԶHn&sԶЄ"mG}Vo̖aȠ3m2ms1ezTok 4a"u՝lmI",zXdVڌix9 ㈜RM6mixnKs`K3}Jȡ`=kU4N`HD& oi)Z 5_1Ml[fmfihkP? A# F}yWd% ;qC7oqqg˅.?AVL.j'i`=a]oU:˲zL:_RHi D[)m**l޶,~$IN["3KYhk:o|rhA-w7l6Gm`5 ] W)^;L"r"]`@s?>EN*њ:ǜأ]Gk#Gsӡy$Iz<$Տ%@s$Oh!Yāxgkh~XC]!4Fz#Q2 ݾ[} H6Jg0CwCݡ`iS{H*8fVt#?##G6_g2d D4ENO;}q8 _??߆~Q=3|y'G}3}8Sa|Ŀ>yDZیdYN­KGy5>R{Elޘ'Ke1xJC{DW|CJ81 {mп@S=CPx<H[mt!(3g290wy l0FD_){fs%r :)nEcQǷf%~hLy}a9 8_xӜ&@>c:qic.uo> @t_{: DAQmx configuretask.llbDAQmx Stop Task.viDAQxDAQx.PTH0IUVISimple Error Handler.viPTH06Utility ERROR.LLBSimple Error Handler.viFPTH0PUPV DAQmx Read.viPTH0)DAQmxread.llb DAQmx Read.viDAQxDAQxIPTH0IUVI&DAQmx Read (Analog DBL 1Chan 1Samp).viPTH0BDAQmxread.llb&DAQmx Read (Analog DBL 1Chan 1Samp).viDAQxDAQxIPTH0PUPVDAQmx Write.viPTH0+DAQmx write.llbDAQmx Write.viDAQxDAQxPTH0IUVI'DAQmx Write (Analog DBL 1Chan 1Samp).viPTH0DDAQmx write.llb'DAQmx Write (Analog DBL 1Chan 1Samp).viDAQxDAQxPTH0IUVIDAQmx Start Task.viPTH09DAQmx configuretask.llbDAQmx Start Task.viDAQxDAQx}'PTH0T\yx\{xUŵ3{p'J|%9 $<')9@01 jxh0B A W|I(B[۴ڪXx룚]8ɽm=o~fo֬=bY3zoUhsҴIVPdY eTZv́  7'Hڟ\}IӱQXMІtO'`kYt1"p#a0E3фdQSn. [bI0M&0S so5&0;3<ldm1蛑蛳on5a7Y)fF1f¼Lg0߂?U`pcyc6TdpcЅ9qhC2&d Twhgy9k2L\ `Yѱ90H$b Y)7( '[G`}юc qxK<XNOQAk0<$ Kl~bX]q'hNb?BsR3`~{xI#s`N0Nu?a4'q }#sˆ3rHu%h97aNZG^Z7\lKi旾֑׹]l"1e &_H#׺Xd3ټ1a󵎼ϵn,l T#0 ˇ!Ð:Ƶ ` ՄkMZQ0G1 kʵn,x"]#Uh'4#Zw%8:D\ƙ8@ټ棬f? ]{!5&x#8 ܏U0Z7o4׽,~g?`Q[ |ݣ1{YaL 3=:^`6!SoLuu/چ0TݣNsGGGAG?1W<:+^.l y|ţplF"4}+gp;+;˘wُr8.p+>De(STE/x2@ #^J̙`7^ʰǣA+ |5[D͌p\&EvwՐ ø*U{RSZ^.Vӗy‹e<.Pv(yʋ QDj(LRSBXBDK~;ةW3/ָ4QI< R\3.4C&a)j^QS \"EB 尉rDxTe@C9b"Ex,.+݌Kr c<+X \V"* <">>R˸ܥEq/X'>sEa`q0_ctd?)Dl@yʫ&k~F`gI Q *5L?!ǵZ4oOo5l4m76$}Cflp3+DheK[=#I$;fOMM/2͡Mz" \ ] J AXSM?Ȩad= ΋Dk .Eg;]ndp>ya=kʦ[C6+h%3 9hTS! H@%`G ZRYɔUdsM+YՔ# I0M ךF|nMπ10G:4}S3=SX1pDtxto47g_f:l2@˛U0}2$vOÅ3c`E:,~i,=JXhHtVnb/Sw?A@!Bg_C"\NR 0~*B:W}K@!dk /}N\bxc10 H4Kpqr/'8飍(Wu(X&Iy$zd2g:CN%b88y^ ,Jl\'"LO)}BwwSR XqN3㌖\0R#\3s3Ĥ(c%X V\< ip:G uE%:peM^`bo9*Wg&1%w p ~ Q[Ka:梶΄!b, zlZ~ɒV;>:ںQE.|Gz,ނ3zΣY)iD^l^))J :|@"XYc~4"A4?2Lk);$}ce} ׈і{԰r% U+H(:Q h_k;]Co7\6F>B7M>_`f_BvGM)yVtQd'7y7#nncEVnnXcy k0{x7Z7IBX =IxdZnVn*nVCdYoSw}F7筷ɧIGf1Dr)ݬѻu$tSûӺcVyu.y\ C7E7k'?Iw.w4pp7xՖ[!nXmALnY@l~=8i!ct[ך7B䦘Z3#][Ԛ{4Y!{fT'BXLr2MkG7%x*-r;ЅP7s~fv) sF:\6^Tp gx/~~vV8 ^] PV%Z/_ /JJ.7fN2;?xlD:@BԇJ/!kBFHj@Dh!Õؓ'A[HQl'eG:t7˄lQ)J6P[z\<'e}Y= 2_b =ƞu#";i7p^(lu^ѾŐݖp9ھ3\ٝa?ޤcle/tJ(v$^ CWl'iۃ^ $"%cJ8ݑ}Mvru-*c *xy4ܩJQ\HcӐ[:$\1UNr~cCH.1 Pv73D~[.n W@H$-+ 0^b@tcVie?|C1T@O(#rQ+ Fr:]oXp`PB G)<7QN#CuJ|>y\x6̳:Vh}E.2TfZC9neN&1cg6ТyD&qSr:k-=`2B_xoTe+wwsm= -{ӽRp86ݪE栨eLrCTJ D- ѬϊY?+45oM_535<4>a[z)q~hG;B ѫ=E:{>]pw;ygz)ZQpë?JRukugjIw2H,Q$nkW%H*ڧ|hM %%f@?$&ި>i$r<'9EO':l'^}gl?kQ@TlZ_<_$}q+uj| ϞqEԲ)>gtW+*$|1@>JiFZi.fϰ[xlثNB߫h7^ԾKcE%+U tQ8l[xFa<Õ*``:>u]ٟⷭ8GAX*uDb޲6ݵZ쎄NRYvo2+"J0cZFBk]dD-^6Ƀ'8Tv{Uj(ڹ:,H9-Rl{[~%~%P(K܉v}8[9m_9lOݹL-tDוC-e'z =3abM.UeRKzbpZCzmZ|ځߦ =/|o^ wHʾnS坄ݗz(" ~;h[_6LoXYoͨ߰gFiNI.LV.ALL.goodSyntaxTargets!0 @DfltNI.LV.ExampleFinder!@0xml text( PID Control Loop.vi The PID Control Loop VI is designed to be connected to your external system. Enter your Device number for your input and output device. These can be the same DAQ device. Connect the Process Variable you want to read to your chosen Input Channel. Connect the PID output from the chosen Output Channel to your system. Run the VI. Choose a Set Point value to which you want your system to adjust. The Tuning Parameters can be used to adjust the PID output to control your system. PID control loops 3147 LabVIEW LabVIEW 1 1000 ImmediateSingleScan Voltage 1 1000 SinglePoint Voltage (yIUUAn AMPLESDAQSolution control.llbPIX?.vi    ̀ π  TahomaTahomaTahoma000RSRC LVINLBVW 4LVSRBDPWLIviCONPTM80DFDSLIdsVICDvers$DLDR8FPTDLCPMp`STRGtICONicl4icl8DTHPLIfpTReceDSIM STR  PICC 4FPHb FPSE LIbd BDHb BDSE (VITS e ?e,AeDGeHe̘JeܰKe켁QeRf SfTf,(f<<HTDhtdl