-

Gửi bởi
kkkkkkkk
code cung ko có gi đâu bạn.
ví dụ chuyển động đi lên cua buồng thang(BT)
#include "apdefap.h"
int gscAction( void )
{
float a;
a=GetTop("mohinh_thangmay.pdl","BT");
if (GetTagBit("NANGTOCDOCAO")==1)
a=a-10;
else
a=a;
SetTop("mohinh_thangmay.pdl","BT",a);
return 0;
}
còn đi xuống thì a=a+ thôi.
còn nếu chạy qua trái hay qua phải thì dùng GetLeft hay Get Right sau đó tuơng tự,tùy bài toán mà bạn viết code thôi.
Cái này phía dưới lệnh a=a-10; phải có SetTop("mohinh_thangmay.pdl","BT",a); ^^
-
-
Thành viên cấp 3
đúng ra là có ,nhưng ko có vẩn chạy bình thường.
luốn tiện hỏi khanhmy cái luôn nha.
trong c scrpt mình muốn viết hàm để phát hiện buồng thang,ví dụ khi buòong thang lên tới tầng thì settagbit cảm biến,(để khỏi bấm cảm biến) mà khi viết chạy đến tọa độ cụ thể thì nó ko set,chi set trong 1 khoang nào đó,vậy là sao hả bạn,bạn có cách j ko?
-
-

Gửi bởi
kkkkkkkk
đúng ra là có ,nhưng ko có vẩn chạy bình thường.
luốn tiện hỏi khanhmy cái luôn nha.
trong c scrpt mình muốn viết hàm để phát hiện buồng thang,ví dụ khi buòong thang lên tới tầng thì settagbit cảm biến,(để khỏi bấm cảm biến) mà khi viết chạy đến tọa độ cụ thể thì nó ko set,chi set trong 1 khoang nào đó,vậy là sao hả bạn,bạn có cách j ko?
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 ^^
-
-
Thành viên cấp 1
bác nào biết tại sao máy này chạy bài đó được nhưng máy khác chạy thì k chịu,hic,mình lấy bài của bác KKKKKKKK mà chạy thì k được. Có bác nào gặp lỗi này chỉ mình với? cảm ơn trước nhé!
-
-

Gửi bởi
ngocminh211289
bác nào biết tại sao máy này chạy bài đó được nhưng máy khác chạy thì k chịu,hic,mình lấy bài của bác KKKKKKKK mà chạy thì k được. Có bác nào gặp lỗi này chỉ mình với? cảm ơn trước nhé!
muốn chạy được đầu tiên phải đúng vesion của nó, thứ hai là phải đổi tên thành máy của mình bằng cách bật WINCC lên nhìn bên trái có dòng Computer kích phải chọn properties/properties/use local..........=>>OK
-
-
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 ?
-
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à 02:59 AM.
Phiên bản 4.2.5
Phát triển bởi thành viên PLCVietNam®.
Đánh dấu