zmrs163
級別: 家園常客
|
本人比較喜歡研究算法,大家在編程時有什么算法相關(guān)的問題可以留言下,我會盡力提供解決方案或程序 |
---|---|
|
夢雨天涯
微信hui530527 &
級別: 網(wǎng)絡(luò)英雄
|
圖片:
既然大佬發(fā)話了,那我就捧場一下,入圖片所示,要求只有一個編碼器(AB相),入口有一個感應(yīng),其他的地方都沒有了,有N個工位,動作你可以理解為每個工位吹氣一段時間。然后普通電機控流水線,編碼器安裝在主動輪上,對應(yīng)流水線主動輪一圈,編碼器就一圈 |
|
---|---|---|
|
夢雨天涯
微信hui530527 &
級別: 網(wǎng)絡(luò)英雄
|
第2個程序,要求在觸摸屏可以替換點位,Y70到Y(jié)77是備用點,Y0到Y(jié)67是正在使用的點,要求如下假設(shè)Y10點壞了,Y70-Y77可以替換(觸摸屏直接寫入數(shù)字) |
|
---|---|---|
|
夢雨天涯
微信hui530527 &
級別: 網(wǎng)絡(luò)英雄
|
第3個,平常用到的分割器轉(zhuǎn)盤8工位的,普通電機控制,假設(shè)有一個工位換掉了,但是人工沒及時查看。要求,同一工位如果連續(xù)出現(xiàn)3次不合格,那么就要報警停機,還有一個連續(xù)3個工位報警也要停機,如果在工作過程中,遇到不合格,也要有重測次數(shù),比如,一個氣缸下降到轉(zhuǎn)盤,有模擬量輸出返回,如果不合格立馬退回,然后再次檢測。 |
|
---|---|---|
|
夢雨天涯
微信hui530527 &
級別: 網(wǎng)絡(luò)英雄
|
第4個,字符串處理的時候,常常遇到字符串中間段有H00的,字符串就停止執(zhí)行,好比如字符串抽取指令,遇到中間有H00的就默認已經(jīng)結(jié)束了。那么問題來了,一串字符串12345678,怎么提取2345678(不得用字符串命令,不可靠,遇到H00就不行) |
|
---|---|---|
|
夢雨天涯
微信hui530527 &
級別: 網(wǎng)絡(luò)英雄
|
第5個,比如有一個產(chǎn)品,數(shù)值A(chǔ)是90,任意N個盒子,假設(shè)1-3為1號盒子,4-8為2號盒子,盒子的數(shù)字不規(guī)則等分,但是從小到大,那么怎么快速分出這個數(shù)值A(chǔ)在哪一個盒子?要求不得一個個盒子去比較,浪費PLC掃描周期(如果是N等于10000,你想想程序每次比較10000個還不吐血) |
|
---|---|---|
|
夢雨天涯
微信hui530527 &
級別: 網(wǎng)絡(luò)英雄
|
第6,假設(shè)有N個通訊的儀器,分別PLC通道1要發(fā)幾個指令比如,01,02,03,04,要求如下:誰先準備好就先開始發(fā)送,儀器接到命令后,返回該儀器測試到內(nèi)容。比如1號準備好了,就發(fā)送01,那么這個過程中其他的站號不得動作,需要等到他回復(fù)信號后才允許下一個動作……如果1號每次都準備特別快,那么他可以繼續(xù)完成02,03的動作,所有返回的數(shù)據(jù)需要有特定的D來存儲,為了后面數(shù)據(jù)進行比較, |
|
---|---|---|
|
夢雨天涯
微信hui530527 &
級別: 網(wǎng)絡(luò)英雄
|
第7,假設(shè)有1-5個子程序,在觸摸屏升任意定義他們的動作先后,比如5,4,1,2,3,2,1(步數(shù)不確定,假設(shè)N個,但不會超過100)可重復(fù)動作(1號就重復(fù)了兩次),要求程序不得超過300步,卻簡單越好 |
|
---|---|---|
|
天空流星
SZ-CL
級別: 網(wǎng)絡(luò)英雄
|
圖片:
圖片:
默默的把手上的工程截圖,這個是不是你想要的 |
---|---|
|
zmrs163
級別: 家園常客
|
1.我的理解是流水線最多200個輪胎,只在入口檢測,到對應(yīng)位置打開對應(yīng)輸出?首先標定各個輸出與入口的距離存入數(shù)組(假設(shè)為p1,p2,p3...),然后整個線體一圈假定N個脈沖,計數(shù)器為環(huán)形計數(shù)器最好,不是的話需要程序取余數(shù)但是可能溢出會導(dǎo)致取余數(shù)不準。當(dāng)入口感應(yīng)到輪胎則記錄當(dāng)前編碼器數(shù)字假設(shè)為P,然后就得到了每個輸出輸出時的位置(P+P1)MOD N,當(dāng)當(dāng)前值大于等于此值時輸出打開一段時間。上述可以構(gòu)造一個200*40的數(shù)組實現(xiàn),然后輸出過后可以再設(shè)置個標志位,當(dāng)所有標志位ON之后就可以清除這個輪胎的位置數(shù)據(jù)了。 2.可以理解成原本Y0對應(yīng)Y0,Y1對應(yīng)Y1,。。。程序可以先做一次映射,比如Y0--M0,Y1--M1。那么原本的映射關(guān)系可以看成是M0=Y0*1+Y1*0+....所以所要做的是構(gòu)建一個單位矩陣,對角線全為1,映射關(guān)系就是矩陣的乘積,所以輸入數(shù)字改變映射關(guān)系就是改變這個矩陣,也就是每一行1的位置,這個應(yīng)該就沒啥難度了吧,這樣可以實現(xiàn)全輸出任意映射的切換。 3.沒太看懂題目?感覺用個存儲1--8的8個寄存器隊列,移動一次先出后入一次記憶工位,產(chǎn)品對應(yīng)關(guān)系,然后另有8個寄存器存儲報警。報警發(fā)生時,現(xiàn)根據(jù)隊列找到對應(yīng)關(guān)系然后存入報警信息不就好了? 4.怎么提取,輸入起始位置和長度提取?要是我就直接整個字符串異或0b1000 0000,因為ASC范圍也就到0X7F,這樣把H00轉(zhuǎn)化成合法字符串用字符串指令操作好再異或回來。 5.二分法,思路很簡單只不過寫的時候細節(jié)很多。 |
---|---|
|
zmrs163
級別: 家園常客
|
6.看不懂。。準備好是輸入點信號?其他站號不得動作啥意思,繼續(xù)完成后面的動作又是啥意思。。 7.變址循環(huán)不就好了,細節(jié)太少導(dǎo)致問題可難可簡單。比如說先開始的動作一定要完成了才能進行下一步嗎,還是先開始就行,只要在下個相同動作開始前完成就行。還有你的輸入是一個不定長的數(shù)組嗎,動作完成后有信號返回嗎類似等等。 |
---|---|
|