[問題] textBox數值更新
各位先進大家好,小弟在做關於感測器方面的應用
我是使用TwinCAT與感測器建立PLC變數
並使用C#的ADS協議來獲取我要的感測器數值
這部份程式大概會是這樣:
private TcAdsClient tcAdsClient=new TcAdsClinet();
private int hvar=new int();
int dataone;
void DataLoad ()
{
hvar=tcAdsClinet.CreateVariableHandle("Plc");
dataone=(int)tcAdsClient.Readany(hvar,typeof(int));
textBox.Text=Convert.ToString(dataone);
}
private void timer_Tick(object sender, EventArgs e)
{ DataLoad
}
以上主要是將我的感測器數值建立並顯示在textBox
我目前想做到的是能夠透過這個感測器的數值變化
來做為我機器移動的判斷依據
將我的機器移動到我想要移動到的位置
這邊的控制程式是以button去寫的
我的這部份程式大概是這樣:
private void button_Click(object sender,EventArgs e)
{
Move (1,2,3);//移動至(1,2,3)座標位置
for(int j=2;j<10;j++)
{
if(double.Parse(textBox.Text)<5)
{
Move (1,j,3+1);
}
else
{
Move (1,j,3-1);
}
}
}
程式主要的問題在於這個感測器數值textBox
它一直是在介面上刷新,而我時時在監測數值
而當我把textBox.Text當成條件式來使用時
條件式會直接讀取button按下去的瞬間的textBox值
來判斷它要走哪一行程式,在機器移動過程中
它就不會再去做判斷,假設button按下去時數值為3
它就只會執行Move (1,j3+1);
在這個迴圈走完前都只走一樣的路徑
即使過程中textBox數值改變都不會執行另外一行
我不太曉得問題出在哪裡,還是不能把textBox.Text
這個控制項來當作判斷式呢?
主要希望它能在過程中也能時時得到感測器的值
且根據這個值來做它必須移動到的點
或者有沒有可能這個跟多執行緒有關呢?
手機排版請見諒,希望能跟各位大大討論
小弟感激不盡,謝謝各位
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.124.33.222 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1583762126.A.377.html
→
03/09 23:26,
5年前
, 1F
03/09 23:26, 1F
→
03/09 23:29,
5年前
, 2F
03/09 23:29, 2F
→
03/09 23:29,
5年前
, 3F
03/09 23:29, 3F
推
03/10 07:29,
5年前
, 4F
03/10 07:29, 4F
推
03/10 11:55,
5年前
, 5F
03/10 11:55, 5F
→
03/10 11:56,
5年前
, 6F
03/10 11:56, 6F
→
03/10 11:56,
5年前
, 7F
03/10 11:56, 7F
→
03/10 14:57,
5年前
, 8F
03/10 14:57, 8F
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章