Trang này liệt kê tất cả các lệnh được hỗ trợ bởi phần mềm plcLib.
25.1 Cấu hình chung
Lệnh Mô tả Ví dụ Phần
setupPLC(); Định cấu hình cài đặt PLC cơ bản setupPLC(); Định cấu hình phần cứng
25.2 Đầu vào / đầu ra kỹ thuật số một bit
Lệnh Mô tả Ví dụ Phần
in(input); Đọc đầu vào kỹ
thuật số. in(X0); Đầu vào / đầu ra bitđơn out(output); Kết quả đầu ra kỹ
thuật số.
out(Y0); Đầu vào / đầu ra bit đơn
inNot(input); Đọc đầu vào kỹ thuật số đảo ngược.
inNot(X0); Đầu vào / đầu ra bit đơn
outNot(output); Đầu ra tín hiệu ngược sang kỹ thuật số đầu ra.
outNot(Y0); Đầu vào / đầu ra bit đơn
25.3 Logic kết hợp
Lệnh Mô tả Ví dụ Phần
andBit(input); Logical AND với đầu vào kỹ thuật số.
in(X0); andBit(X1); out(Y0);
Thực hiện các phép toán Boolean orBit(input); Logical OR với đầu
vào kỹ thuật số. in(X0); orBit(X1);out(Y0); Thực hiện các phép toán Boolean xorBit(input); Logical XOR với đầu
vào kỹ thuật số. in(X0); xorBit(X1);out(Y0); Thực hiện các phép toán Boolean andNotBit(input); Logical AND với đầu
vào kỹ thuật số đảo ngược. in(X0); andNotBit(X1); out(Y0); Thực hiện các phép toán Boolean orNotBit(input); Logical OR với đầu
vào kỹ thuật số đảo ngược. in(X0); orNotBit(X1); out(Y0); Thực hiện các phép toán Boolean
25.4 Đầu vào / đầu ra tín hiệu tương tự
Lệnh Mô tả Ví dụ Phần
inAnalog(input); Đọc đầu vào tương
tự. inAnalog(X0); Làm việc với tínhiệu tương tự outPWM(output); Xuất ra dạng sóng outPWM(Y0); Làm việc với tín
PWM. hiệu tương tự outServo(output); Xuất ra servo. outServo(Y0); Làm việc với tín
hiệu tương tự
25.5 So sánh các tín hiệu tương tự
Lệnh Mô tả Ví dụ Phần
compareGT(input); So sánh đầu vào tương tự với giá trị tương tự thứ hai, trả về 1 nếu giá trị trước lớn hơn inAnalog(X0); compareGT(X1); out(Y0); So sánh các giá trị tương tự
compareLT(input); So sánh đầu vào tương tự với giá trị tương tự thứ hai, trả về 1 nếu giá trị trước nhỏ hơn inAnalog(X0); compareLT(X1); out(Y0); So sánh các giá trị tương tự 25.6 Chốt Lệnh Mô tả Ví dụ Phần latch(latch_output,
reset_input); Chốt giá trị đầu vàokỹ thuật số trước đó. in(X0);X1); latch(Y0,
Kết quả đầu ra atchKey(set_key, reset_key, output); Chốt đầu ra kỹ thuật số dựa trên mục nhập bàn phím.
latchKey('1', '2', Y0); Kết quả đầu ra set(latch_output); Chốt (đặt) một đầu
ra kỹ thuật số nếu giá trị trước đó là true.
in(X0); set(Y0); Kết quả đầu ra
reset(latch_output); Xóa (hủy đặt) đầu ra đã chốt nếu giá trị trước đó là true.
in(X0); reset(Y0); Kết quả đầu ra
25.7 Bộ hẹn giờLệnh Mô tả Ví dụ Phần Lệnh Mô tả Ví dụ Phần timerOn(timer_variable, delay_ms); Tạo ra một đầu ra bị trễ sau khi một đầu vào được bật. in(X0); timerOn(TIMER0, 2000); out(Y0) Sản xuất dạng sóng lặp lại timerOff(timer_variable, delay_ms); Trì hoãn tắt đầu ra sau khi đầu vào bị xóa. in(X0); timerOff(TIMER0, 2000); out(Y0) Sản xuất dạng sóng lặp lại timerPulse(timer_variable,
pulse_ms); Tạo ra xung độ rộng cố định
in(X0);
được kích hoạt 2000); out(Y0); lặp lại bởi một đầu vào
ngắn gọn timerCycle(low_variable, low_ms, high_variable, high_ms); Tạo một dạng sóng xung lặp lại, nếu được bật. in(X0); timerCycle(AUX0, 900, AUX1, 100); out(Y0); Sản xuất dạng sóng lặp lại 25.8 Xung kích hoạt cạnh Lệnh Mô tả Ví dụ Phần
Pulse pulse_name; Tạo một đối tượng xung.
Pulse pulse1; Xung kích hoạt cạnh
pulse_name.inClock(); Kết nối tín hiệu đầu vào với đối tượng
xung.
in(X0);
pulse1.inClock(); Xung kích hoạtcạnh pulse_name.rising(); Đọc cạnh tăng của
dạng sóng xung pulse1.rising();out(Y0); Xung kích hoạtcạnh pulse_name.falling(); Đọc cạnh rơi của
dạng sóng xung pulse1.falling();out(Y1); Xung kích hoạtcạnh
25.9 Bộ đếm
Lệnh Mô tả Ví dụ Phần
counter_name(preset
_value [, direction]); Tạo và cấu hình một đối tượng bộ đếm. CounterCounter ctr2(10,1);ctr1(5); Đếm vàBộ đếm counter_name.count
Up(); Đếm lên, nếu số đếm nhỏ hơn giá trị đặt trước. in(X0);ctr1.countUp(); Đếm vàBộ đếm counter_name.count
Down(); Đếm ngược, nếu số đếm lớn hơn 0 in(X0);ctr1.countDown(); Đếm vàBộ đếm counter_name.preset(
); Đặt số lượng nội bộ thành giá trị đặt trước, kích hoạt đầu ra Q trên
in(X1);
ctr1.preset(); Đếm vàBộ đếm counter_name.clear()
; Đặt số lượng nội bộ thành 0, kích hoạt đầu ra Q thấp hơn
in(X2); ctr1.clear(); Đếm và Bộ đếm counter_name.upper
Q();
Bằng 1 nếu số lượng bên trong bằng giá trị đặt trước, bằng 0 nếu không ctr1.upperQ(); out(Y0); Đếm và Bộ đếm counter_name.lower
Q(); Bằng 1 nếu số đếm bên trong bằng 0, ngược lại bằng 0.
ctr1.lowerQ();
out(Y0); Đếm vàBộ đếm counter_name.count(
); Trả về giá trị đếm bên trong. Serial.println(ctr1.count());
Đếm và Bộ đếm counter_name.preset
Value();
Trả về giá trị đặt trước. Serial.println(ctr1.p resetValue());
Đếm và Bộ đếm
25.10 Dịch chuyển vị trí thanh ghiLệnh Mô tả Ví dụ Phần Lệnh Mô tả Ví dụ Phần Shift register_name([start_value]); Tạo và cấu hình một đối tượng thanh ghi shift
Shift shift1(); Shift shift2(0x8888); Dịch chuyển và xoay dữ liệu nhị phân register_name.inputBit(); Đặt bit đầu vào
nối tiếp dựa trên đầu vào trước đó.
in(X0);
shift1.inputBit(); Dịch chuyểnvà xoay dữ liệu nhị phân register_name.shiftLeft(); Di chuyển dữ liệu
sang trái một chỗ, trên cạnh lên của đầu vào trước đó.
in(X0);
shift1.inputBit();
Dịch chuyển và xoay dữ liệu nhị phân register_name.shiftRight(); Di chuyển dữ liệu
sang phải một nơi, trên cạnh lên của đầu vào trước đó. in(X2); shift1.shiftRight( ); Dịch chuyển và xoay dữ liệu nhị phân register_name.reset(); Đặt lại giá trị
thanh ghi dịch chuyển nội bộ về 0 nếu đầu vào trước đó bằng. in(X3); shift1.reset(); Dịch chuyển và xoay dữ liệu nhị phân register_name.bitValue(bit_posi tion); Trả về giá trị của bit thanh ghi dịch chuyển tại vị trí đã chỉ định.
shift1.bitValue(0
); out(Y0); Dịch chuyểnvà xoay dữ liệu nhị phân register_name.value(); Trả về giá trị của
thanh ghi shift dưới dạng số nguyên không dấu. Serial.println(shi ft1.value()); delay(200); Dịch chuyển và xoay dữ liệu nhị phân
25.11 Logic ngăn xếp và khối
Lệnh Mô tả Ví dụ Phần
Stack stack_name; Tạo một ngăn xếp
32 cấp, một bit. Stack stack1; Logic ngăn xếpvà khối stack_name.push(); Đẩy scanValue,
được biểu thị dưới dạng số bit đơn, lên ngăn xếp.
stack1.push(); Logic ngăn xếp và khối
stack_name.pop(); Cập nhật
scanValue với một giá trị bit đơn bị xóa khỏi ngăn xếp.
stack1.pop(); Logic ngăn xếp và khối
Kết Luận
Như vậy, với đề tài đồ án : Hướng dẫn lập trình PIC với Arduino, nhóm thực hiện đã hiểu được những vấn đè căn bản đối với thiết kế và lập trình một số loại bo mạch Arduino. Ngoài ra cung cấp những kiến thức về các phần mềm ứng dụng trong thiết kế mạch phần cứng. Nhưng một điều quan trọng không thể nói đến đó là tạo cho em những kỹ năng mềm của bản than, khả năng tư duy và làm việc độc lập. Với sự nỗ lực trong việc tìm hiểu nghiên cứu các linh kiện, thiết bị cần thiết cho đề tài, cừng với vận dụng các kiến thức đã học vào công việc thiết kế, lắp đặt, và sự giúp đỡ, hướng dẫn nhiệt nhiệt tình của thầy giáo Triệu Việt Linh, nhóm em đã hoàn thành được đề tài đồ án.
Do đây mới là lần đầu tiên những thành viên trong nhóm làm một đề tài đồ án, cộng với kiến thức còn nhiều hạn chế, chúng em thấy đề tài của mình thực hiện vẫn còn rất nhiều sai sót, khiếm khuyết. Chúng em tự rất mong được sự ủng hộ và giúp đỡ của thầy giáo để đè tài chúng em thực hiện được hoàn thiện hơn và có thêm nhiều cải tiến đáng kể và ứng dụng tốt hơn và thực tiễn.