您现在所在的是:

欧姆龙OMRON

回帖:5个,阅读:999 [上一页] [1] [下一页]
* 帖子主题:

pycathiu machelec 進來

4111
利昌機電 版主
文章数:2023
年度积分:50
历史总积分:4111
注册时间:2003/10/26
发站内信
发表于:2006/6/24 23:06:00
#0楼
我在
http://www.cx-programmer.com/thread.php?fid=79 這裡發起 OMRON Structured Text Instruction Function Block .........不知是懂的人不多還是啥?

您兩位進來玩玩,同時探討一下吧。
图
4111
利昌機電 版主
文章数:2023
年度积分:50
历史总积分:4111
注册时间:2003/10/26
发站内信
发表于:2006/6/24 23:10:00
#1楼
這一段您倆位看一下;當做好玩:
附件

這是用 OMRON Structured Text Instruction(結構化文字)所編寫的一段判斷一個數值是否為可整除數值。若無法整除;允許使用者自訂放大被除數倍率再進行除算。
判斷一個數值是否為可整除數值;自然是以2來除它了。但是;OMRON Structured Text Instruction的 FUNCTION中並無類似C語言的"%"取餘數COMMEND FUNCTION可以運用;因此;寫了一連串IF ELSE END_IF 判斷式來加工它。
實際輸入輸出變數名稱:
StratRun (*啟動位元*)
Amplification(*放大倍率*)
EstimateVariables_1(*被除數輸入;INT類型*)
MathematicsDivided(*可整除輸出位元*)
UnMathematicsDivided(*不可整除輸出位元*)
NullComputation(*被除數為零;警告位元*)
IntraEstimateVariablesDub(*放大計算後結果*)
實際運用中;可使用於無法整除數值;將目前數值左移4位元(乘100倍);再進行計算!因此;利用它!隨時自動判斷數值狀態並調整數值成為可能。

[color=red]具體做法為:[/color]

除數固定為2;被除數(變數為 EstimateVariables_1)經過除算之後;商再乘回除數(IntraEstimateVariables_1 * 2)。

若EstimateVariables_1 與 (IntraEstimateVariables_1 * 2)數值相同!代表為可整除數值。
以下為完整源碼:
IF StratRun THEN
       IntraEstimateVariables_1  := EstimateVariables_1;
    EstimateVariables_2 := 2;
    END_IF;

IF StratRun THEN
   BosomVariables := IntraEstimateVariables_1 / 2;
   IF BosomVariables *2 <>IntraEstimateVariables_1 THEN
       MathematicsDivided :=FALSE;
       UnMathematicsDivided :=TRUE;        
       ELSE
       UnMathematicsDivided :=FALSE;
       MathematicsDivided :=TRUE;
   END_IF;
       
END_IF;
   NullComputation :=FALSE;
ELSE
   NullComputation :=TRUE;
END_IF;
(*若無法整除;除數數值使用自定義倍數計算*)
(*====================================*)

IF NaughtBalance <> 0 AND UnMathematicsDivided THEN    
   IntraEstimateVariablesDub := ((NaughtBalance *Amplification)/2)/10;
END_IF;
(*====================================*)
图
975
机器人的想法
文章数:21
年度积分:50
历史总积分:975
注册时间:2006/6/22
发站内信
发表于:2006/6/25 1:07:00
#2楼
看不懂呀
与人无争,与世要争
16274
machelec 版主
文章数:7023
年度积分:-48
历史总积分:16274
注册时间:2003/12/11
发站内信
发表于:2006/6/25 23:38:00
#3楼
思路是这样的没错。
ST中,对于整型数A,B,如果(A/B)*B=A,那么就表示A能被B整除。这是普适的。好像也只能这样。
当然对于特殊的除数不用那么麻烦,如果除数是2,只要判断A的个位(最低位)是否为0即可。呵呵。
不过那个啟動位元应该是StartRun。
卍卐卍卐卍卐卍卐卍卐卍卐卍卐卍卐卍卐卍卐卍卐卍卐卍卐卍卐卍卐卍卐卍卐
谓正途,崎岖当先
2932
pycathiu
文章数:895
年度积分:50
历史总积分:2932
注册时间:2004/9/22
发站内信
发表于:2006/6/26 16:16:00
#4楼
我不知道样判断的实际意义在哪儿,我做工程的经验实在很少,不能理解这种应用。麻烦利昌大哥给个解释吧
                 我是一只小小鸟
4111
利昌機電 版主
文章数:2023
年度积分:50
历史总积分:4111
注册时间:2003/10/26
发站内信
发表于:2006/6/26 19:40:00
#5楼
自己學著用;算它是命令概念習作。
图

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

62.4004