-
Thành viên cấp 3

Gửi bởi
khanh my
Mình thì thường làm theo cách này, đầu tiên bạn hãy xác định tọa độ của từng tầng, sau đó nhớ tọa độ của từng tầng đó (nếu là giám sát thì căn cứ vào thang máy thật nó chạy như thế nào để xác định tọa độ này cho hợp lý, để thang máy thật chạy đúng với thang máy mô phỏng) mình có tọa độ của từng tầng rồi thì chỉ cần sử dụng lệnh if thôi mà, nếu = tọa độ đó thì dừng, bé hơn thì hạ, lớn hơn thì nâng ^^
ví dụ mình viết như thế này nha:
a=GetTop("mohinh_thangmay.pdl","BT");
if(a==400) //400 là tọa độ của buồng thang ,khii đến tọa độ này thì mình set cảm biến phát hiện đúng tầng
{
settagbit("cbdungtang"==1);
else
settagbit("cbdungtang"==0);
}
như vậy mà khi đến tọa độ thì nó ko set.chỉ khi a< và > trong khoang 400 thì nó mới set.
-
-

Gửi bởi
kkkkkkkk
ví dụ mình viết như thế này nha:
a=GetTop("mohinh_thangmay.pdl","BT");
if(a==400) //400 là tọa độ của buồng thang ,khii đến tọa độ này thì mình set cảm biến phát hiện đúng tầng
{
settagbit("cbdungtang"==1);
else
settagbit("cbdungtang"==0);
}
như vậy mà khi đến tọa độ thì nó ko set.chỉ khi a< và > trong khoang 400 thì nó mới set.
Mình làm như thế này:
if(GetTagBit("CHON_TANG2")==1) //Return-Type: BOOL
{
bien1=GetTop("THANG NANG HANG.pdl","THUNG"); //Return-Type: long int
if(bien1>340)
{
bien1=bien1-5;
SetTop("THANG NANG HANG.pdl","THUNG",bien1); //Return-Type: BOOL
SetTagBit("LEN",1); //Return-Type: BOOL
SetTagBit("XUONG",0); //Return-Type: BOOL
if (bien1==340)
{
SetTagBit("CHON_TANG2",0); //Return-Type: BOOL
SetTagBit("LEN",0); //Return-Type: BOOL
SetTagBit("XUONG",0); //Return-Type: BOOL
}
}
if (bien1<340)
{
bien1=bien1+5;
SetTop("THANG NANG HANG.pdl","THUNG",bien1); //Return-Type: BOOL
SetTagBit("LEN",0); //Return-Type: BOOL
SetTagBit("XUONG",1); //Return-Type: BOOL
if (bien1==340)
{
SetTagBit("CHON_TANG2",0); //Return-Type: BOOL
SetTagBit("LEN",0); //Return-Type: BOOL
SetTagBit("XUONG",0); //Return-Type: BOOL
}
}
}
-
-
Thành viên cấp 3
như vậy thì khi bien == 340 nó vẩn settagbit.
mình làm như vậy nhung nó ko set. chác nó ko có giá trị đó,
-
-

Gửi bởi
kkkkkkkk
ví dụ mình viết như thế này nha:
a=GetTop("mohinh_thangmay.pdl","BT");
if(a==400) //400 là tọa độ của buồng thang ,khii đến tọa độ này thì mình set cảm biến phát hiện đúng tầng
{
settagbit("cbdungtang"==1);
else
settagbit("cbdungtang"==0);
}
như vậy mà khi đến tọa độ thì nó ko set.chỉ khi a< và > trong khoang 400 thì nó mới set.
Có thể bạn viết Code nhầm ở chổ lệnh if, lưu ý ở đây là if lồng if nhé, chứ if riêng lẻ là không được, vì lệnh kia cứ làm cho nó chạy, lệnh này làm nó dừng, 2 lệnh như vậy nó không tác động, ở bài mình 2 cái lệnh LEN ; XUONG là mình làm cho cái mủi tên hiện thôi, k phải hành trình của thang đâu nhé, hành trình của thang chỉ phụ thuộc vào biến đầu tiên đó là if(GetTagBit("CHON_TANG2")==1) //Return-Type: BOOL
Lần sửa cuối bởi khanh my, ngày 03-14-2012 lúc 01:11 PM.
-
-
Thành viên cấp 3
340 là tọa độ ở đâu vây? bài này bạn làm thang nâng hàng phải ko?
có mấy tâng ?
-
-

Gửi bởi
kkkkkkkk
340 là tọa độ ở đâu vây? bài này bạn làm thang nâng hàng phải ko?
có mấy tâng ?
Thang nâng hàng của mình gồm có 4 tầng, tọa độ nó váo chổ Geometry đó
-
Quyền viết bài
- Bạn Không thể gửi Chủ đề mới
- Bạn Không thể Gửi trả lời
- Bạn Không thể Gửi file đính kèm
- Bạn Không thể Sửa bài viết của mình
-
Nội quy - Quy định
Back to Top
Múi giờ GMT +7. Bây giờ là 05:48 PM.
Phiên bản 4.2.5
Phát triển bởi thành viên PLCVietNam®.
Đánh dấu