A. 步進電機的程序該怎麼寫
我沒有寫過PLC的,只寫過單片機的哦...你網上搜下,蠻多的,主要是理解了就好...步進嘛,就是你給它一個突變的信號,它就走一步的,不然就不叫步進撒...也就是你觸發它一下,它跑一步,且只跑一步的哦...懂了吧?
內容:1、本程序用於測試4相步進電機常規驅動
2、需要用跳帽或者杜邦線把信號輸出端和對應的步進電機信號輸入端連接起來
3、速度不可以調節的過快,不然就沒有力矩轉動了
4、按s4(設置成獨立按鍵模式)可以控制正反轉
------------------------------------------------*/
#include <reg52.h>
bit Flag;//定義正反轉標志位
unsigned char code F_Rotation[4]={0xf1,0xf2,0xf4,0xf8}; //正轉表格
unsigned char code B_Rotation[4]={0xf8,0xf4,0xf2,0xf1}; //反轉表格
/******************************************************************/
/* 延時函數 */
/******************************************************************/
void Delay(unsigned int i)//延時
{
while(--i);
}
/******************************************************************/
/* 主函數 */
/******************************************************************/
main()
{
unsigned char i;
EX1=1; //外部中斷0開
IT1=1; //邊沿觸發
EA=1; //全局中斷開
while(!Flag)
{
P0=0x71;//顯示 F 標示正轉
for(i=0;i<4;i++) //4相
{
P1=F_Rotation[i]; //輸出對應的相 可以自行換成反轉表格
Delay(500); //改變這個參數可以調整電機轉速 ,數字越小,轉速越大
}
}
while(Flag)
{
P0=0x7C;//顯示 b 標示反轉
for(i=0;i<4;i++) //4相
{
P1=B_Rotation[i]; //輸出對應的相
Delay(500); //改變這個參數可以調整電機轉速 ,數字越小,轉速越大
}
}
}
/******************************************************************/
/* 中斷入口函數 */
/******************************************************************/
void ISR_Key(void) interrupt 2 using 1
{
Delay(300);
Flag=!Flag; //s3按下觸發一次,標志位取反
}
B. 西門子s7-200plc控制步進電機速度與正反轉怎麼編程
1、主程序先正轉,等到正轉完了就中斷,中斷中接通個輔助觸點(M0.X),當M.0X閉合,住程序中的反轉開始運做。這樣子就OK了。
2、用PTO指令讓Q0.0 OR Q0.1高速脈沖,另一個點如Q0.2做方向信號,就可以控制正反轉了,速度快慢就要控制輸出脈沖周期了,周期越短速度越快,如果你速度很快的話請考慮緩慢加速,不然它是啟動不了的,如果方向也變的快的話就要還做一個緩慢減速,不然它振動會蠻厲害,而且也會失步。
C. 西門子s7-200要讓步進一直轉,如何寫程序
步進電機速度是靠脈沖來控制的,你直接用指令向導就可以生成你想要的脈沖輸出程序。PLC,必須是晶體管讓頌輸出的,脈沖核州輸出接的Q0.0上。至於正反轉用開關量控制就可坦氏鄭以了
D. 步進電機怎麼編寫控製程序
步進電機編程一般有幾點。細分數,結構比例,加速度,減速度。最大頻率限值,最小起跳頻率。
1:原點。
2:速度,距離(相對位置,絕對位置)。速度模式
3:停止。等待
如果多軸的或開關,感測器比較多的位置控制就比較復雜了。有很多變數和跳轉。這取決於控制器功能和底層程序開發和運用。
根據你問的情況,應該是寫上層程序。中層都已經做好了,寫程序需要對使用的晶元和代碼非常熟悉,邏輯關系比較了解,運動結構也有一定的認知。