2021年5月18日 星期二

手做

給玲做口袋 

表袋布10.5*16.5 /襯 9*15 各二

口袋布10.5*11.5 /襯 9*10 各二
口袋皮檔片 8.5*3
二側圓弧角,利用0.7縫份圈畫出

2021年1月30日 星期六

自動化元件配線與控制

 陳大道

1/30

pic16f887 pickit3

注意專案資料夾的設立

#include<pic.h>

//#include<pic16f887.h>

main()

{

TRISD0=0;

RD0=1;


}

查表法用陣列存

資料空間指定char 8位元,int 16bit, long int 32bit

全域變數,區域變數

主程式,副程式

#include<pic.h>

//#include<pic16f887.h>

const char LED[8]={1,2,4,8,16,32,64};

char i;

long int j;


main()

{

TRISD=0b00000000;

PORTD=0b00000000;

while(1)

{

for(i=0;i<8;i++)

        {

PORTD=LED[i];

for(j=0;j<98000;j++)

{}

}

}

}

-------------------------------------------------------

pic16f877.h內的宣告

// Register: TRISD

volatile unsigned char           TRISD               @ 0x088;

// bit and bitfield definitions

volatile bit TRISD0              @ ((unsigned)&TRISD*8)+0;

volatile bit TRISD1              @ ((unsigned)&TRISD*8)+1;

volatile bit TRISD2              @ ((unsigned)&TRISD*8)+2;

volatile bit TRISD3              @ ((unsigned)&TRISD*8)+3;

volatile bit TRISD4              @ ((unsigned)&TRISD*8)+4;

volatile bit TRISD5              @ ((unsigned)&TRISD*8)+5;

volatile bit TRISD6              @ ((unsigned)&TRISD*8)+6;

volatile bit TRISD7              @ ((unsigned)&TRISD*8)+7;

#ifndef _LIB_BUILD

volatile union {

    struct {

        unsigned TRISD0              : 1;

        unsigned TRISD1              : 1;

        unsigned TRISD2              : 1;

        unsigned TRISD3              : 1;

        unsigned TRISD4              : 1;

        unsigned TRISD5              : 1;

        unsigned TRISD6              : 1;

        unsigned TRISD7              : 1;

    };

} TRISDbits @ 0x088;

#endif


0206

按鈕有反彈跳,延遲時間


光耦合器要計算電阻值,避免燒掉,二極體0.7v就導通,太大會燒掉,看用交流電或直流

原本伺服驅動器的脈波輸入是5V,
如果要用24V,會經由PULL-HI_S的接點,
會多經過1個1K歐姆的電阻。
會讓流經過LED的電流控制在20mA左右。



如果是外接24V,(不透過PULL-HI_S)也會建議加電阻


#include<pic.h>

#define sw2 RB0

#define sw3 RA4

main()

{

TRISD=0b00000000;

PORTD=0b00000000;

TRISB0=1;

ANS12=0;

TRISA4=1;

int i;

while(1)

{

if(sw2==0)

{

for(i=1;i<1000;i++);

if(sw2==0)RD0=1;

}

else RD0=0;

if(sw3==0)

{

for(i=1;i<1000;i++);

if(sw3==0)RD1=1;

}

else RD1=0;

}

}

#include<pic.h>

#define sw2 RB0

#define sw3 RA4

main()

{

TRISD=0b00000000;

PORTD=0b00000000;

TRISB0=1;

ANS12=0;

TRISA4=1;

disp=0b00000001;

int i;

while(1)

{

if(sw2==0)

{

for(i=1;i<1000;i++);

if(sw2==0)

{

PORTD=disp;

disp=disp<<1;

if(sw2==0)disp=0b00000001;

}

}

else RD0=0;

if(sw3==0)

{

for(i=1;i<1000;i++);

if(sw3==0)RD1=1;

}

else RD1=0;

}

}

229

伺服馬達控制器

絕對位址相對位址












302
電子齒輪比





查表法








0309
plsy ks kp y0 y4


步進角360度/500=0.72

ALTP指令
LD X0
ALTP Y0

按一下X0,Y0=ON,再按一下,Y0=OFF,交替输出


0323

//* LCD exercise

#include <pic.h>   

#include "MID_LCD.h"

const char LCD_Msg1[]="float point disp"; 

char LCD_Msg2[]=      " NUMBER:        "; 

 main()

{

  float data;

    int number;

    OpenLCD();

    LCD_Set_Cursor(0,0);

putrsLCD(LCD_Msg1);

LCD_Set_Cursor(0,1);

putsLCD(LCD_Msg2);

    data=25.67;

    number=(int)(data*100);

    LCD_Set_Cursor(8,1);

    put_Num_LCD(number);

   while(1);

}//main

 Temp_Char_100 = (The_Number - Temp_Char_1000*1000)/100 ;;//取百位數的數字

(The_Number%1000)/100

polling

 for(i=0;i<9;i++);// 取樣時間 20us

    GO_DONE=1;   // GO=1Start A/D convert

共用體宣告

union {

    int ADC_VALUE;

    struct {

         char ADC_L;

         char ADC_H;

       }; 

   }ADC; 


 ADC.ADC_L=ADRESL;

       ADC.ADC_H=ADRESH;

V=(ADC.ADC_VALUE/1023.0)*5.0;

ADC_value=(adh<<8)+ADCL;


++++++++++

// AN1為輸入 T1047IC溫度量測

#include <pic.h>

#include "MID_LCD.h"

// 有關底下詳細設定內容請參考 : pic16f887.h 裡的說明

__CONFIG ( FOSC_HS  & WDTE_OFF & PWRTE_OFF & MCLRE_ON & CP_OFF & CPD_OFF &

           BOREN_OFF & IESO_OFF & FCMEN_OFF & LVP_OFF ); 

__CONFIG ( BOR4V_BOR40V & WRT_OFF );

const char LCD_Msg1[]="Hi-Tech PICC ADC"; 

const char LCD_Msg2[]="V:      T:      "; 

float V,T;


 int number;

 union {

    int ADC_VALUE;

    struct {

         char ADC_L;

         char ADC_H;

       }; 

   }ADC; 

void main(void)

{

 unsigned char i;

  TRISA1=1;

  ANS1 = 1; // Set RA0 which in ANSEL as AD input pin

  ADFM=1;   //  轉換的10位數字 向右排齊 

  VCFG1 = 0;

  VCFG0 = 0;// Vref+=VDD=5, Vref-=VSS=0;

  ADCS1=1;

  ADCS0=0; // Tad=FOSC/32

  CHS3=0;

  CHS2=0;

  CHS1=0;

  CHS0=1; // CHS3:CHS0=0001, AN1為輸入 T1047IC溫度量測

  ADON=1;

//  ANSEL =0x01;// Set RA0 which in ANSEL as AD input pin

//  ANSEL =0b00000001;

// ADCON1=0b10000000;// Right justified, Vref+ = Vdd, Vref- = Vss 

// ADCON0=0b10000001;// Tad = Fosc/32, Select AN0, A/D on

  OpenLCD();

LCD_Set_Cursor(0,0);

putrsLCD(LCD_Msg1);

LCD_Set_Cursor(0,1);

putrsLCD(LCD_Msg2);

   // ADON=1;    // AD 開始轉換

    for(i=0;i<9;i++);// 取樣時間 20us

    GO_DONE=1;   // GO=1Start A/D convert

    while(1)

   {

 //  while(ADIF==1)  //GO=0 End of convert

if(GO_DONE==0)  //GO=0 End of convert 

      {

  //   ADIF=0;

       ADC.ADC_L=ADRESL;

       ADC.ADC_H=ADRESH;

       V=(ADC.ADC_VALUE/1023.0)*5.0;

        number=V*100;

       LCD_Set_Cursor(2,1);

       put_Num_LCD1(number);

       

       T=(V/3.3)*100.0;

       number=T*100;

       LCD_Set_Cursor(10,1);

       put_Num_LCD1(number);

       GO_DONE=1;   // GO=1Start A/D convert

     }     

  }

}


2021年1月29日 星期五

PLC基礎

 老 師鄒重光

三菱plc

1/29

























Sequence Function Chart

步進階梯(順序控制)  脫離母線
set 設定步進點

stl  進入步進點 Step Ladder

ret 返回母線

1.狀態步進點
2.動作
3.移行條件  x輸入繼電器,t,計時器c 計數器 無條件

1.無條件控制動作
 2.有條件控制動作 
 3.移行條件的控制動作 
 4.在最後一個步接點 S ,一定要 RET(return)返回母線 



因步進階梯進行至下一步接時,會自動將上一步接點的線圈輸出(OUT)控制動作停止 (包含計時器 T、繼電器 M、輸出 Y; 但計數器 C 不會停止,需要 RST C 計數才停止) 所以,要先判斷這個步接的動作有沒有延續性 1.如果沒有延續性,用(線圈輸出)OUT Y 即可. 2.如果有延續性,須用 SET Y(保持輸出);但須考量,何處必須停止動作,用 RST 解除 3.另外,因雙動電磁閥作用有自保持功能, 但是,單動電磁閥作用時沒有自保持功能,會以彈簧自動復位, 如果動作有延續性,必須用 SET Y(保持輸出); 何處必須停止動作,用 RST 解除


2/5 電磁閥介紹





 
https://i2.kknews.cc/SIG=1qvn8hk/66n80003p71619r4o43n.jpg



http://w3.uch.edu.tw/cyitme/
單線圈另一邊有彈簧,拆解後



雙線圈電池閥有自保持功能,沒彈簧


http://w3.uch.edu.tw/cyitme/ 健行科大 張祖烈教授教學網


2/19


起保停鎖  自鎖互鎖

1.輸送帶 單方向

2.滑台 
  左右極限  B接點 碰到變A接點  不送0V給





感測器介紹

光電式感測器判斷顏色

光遮斷式感測器   到位 有方向性 定位

近接開關  靈敏度
  電感式  金屬非金屬
  電容式   都可



2/22
練習接線
好做為控制的進出



歐規端子:  藍 ,綠白線

Y型端子: 其他線
      整理箱一個
      彩虹線公母一對
      輸出: 紅黃綠燈各一
      輸入: 綠,紅,reset,單旋鈕,左右旋鈕
工具:
      定心垂,定規尺,
      歐規端子夾



Y型ˊ端子夾

步驟
1.標示  油性寫字筆
2.定位  中心沖 固定夾扣  固定點用固定座 安全第一 用廢材木板為底
3.引孔  4mm鑽頭
4.擴孔 22mm擴孔鑽或階梯鑽 (木田)

224
穩壓









            









303
1.主控指令
MC
MCR
2.輔助繼電器M
3.避免雙輸出
4.起保停鎖





啟保停鎖




305
起保

停止條件
  採外B內A

外接B    PLC程式接A

1.緊停
2.極限開關
3.停止開關
4.與安全有關控制
5.積熱電驛ˋ


1.主控指令
MC
MCR
2.輔助繼電器M 避免雙輸出
3.計數器 c   (c0k5)
      x1
       ||--(c0k5)
      x2 
       ||--[rst c0]   清除時間設定
4.順序控制






0306
5v驅動110V




介绍P三相交流电动机的星形和三角形接法的概念
http://www.bilibili.com/video/BV1iV41167eE?share_medium=android&share_source=line&bbid=XY9DAAD997115E135D09D4B600AADC054F6EA&ts=1614964897329

星型(Y)


三角形(△)



https://kknews.cc/zh-tw/news/2lrglye.html

3/12 複習






0313
外部互鎖
氣路規劃
*電 220V  110V
*
*訊號  電話線 2
*網路 RJ45線  16
*水路


一般階梯
  1.  步進點進度管制區
  2.初始 步進點設定
  3.緊急停止
  4.復歸處理程序
  5.燈光設定
  6.手自動切換
  7.步進點停止 設定
  8.停止設定按鈕過載警報.等
步進階梯  set stl ret  順序性









[= k1y000 k0]  y000至y003 4個bit 給0

____________________________
PLC基礎原理及機電整合介紹
◆繼電器、電磁閥及氣壓控制
◆PLC機台電腦連線控制
◆感測器機構原理
◆可程式控制單元:輸入輸出單元
◆可程式控制單元:內部繼電器
◆可程式控制單元:STL步進階梯圖、分岐、合流
◆可程式控制單元:計時器、計數器
◆可程式控制單元:SFC步進階梯圖
1.SFC步進階梯圖說明
2.SFC設計應用
◆可程式控制單元:特殊繼電器計數器
1.特殊繼電器計數器程式說明
2.特殊繼電器計數器程式應用方法
◆可程式控制單元:SFC步進階梯圖
1.SFC步進階梯圖說明
2.內部程式設計方法
◆可程式控制單元:SFC步進階梯圖應用
1.SFC步進階梯圖應用方法
2.SF內外部程式合併迴路設計
◆模擬人機介面控制
1.模擬人機介面控制介紹
2.模擬人機介面連結應用
◆模擬人機介面程式設計及應用
1.模擬人機介面程式設計
2.模擬人機介面程式應用說明
◆人機介面與PLC連線應用
1.人機介面與PLC自動化程式
2.連線應用方法說明
◆人機自動化控制進階應用
◆可程式控制單元:數值暫存器應用
◆可程式控制單元:數值四則運算應用
◆可變電阻類比輸入與PLC應用
◆類比輸出控制燈光與PLC應用
◆類比控制與數值運算綜合運用(一)
◆類比控制與數值運算綜合運用(二)
◆程序控制綜合應用(一)
◆程序控制綜合應用(二)
◆機台急停安全功能設置
◆機台復歸與故障排除