-

Gửi bởi
thealivehell
Mọi người cho mình hỏi muốn lấy xung từ cảm biến về để hiển thị số sản phẩm trong wincc mình phải làm như thế nào? Mong mọi người hướng dẫn chi tiết. Mình định sử dụng I/O field nhưng vẫn chưa làm được
bạn làm như thế nào phải nói rỏ ra mới biết bạn sai chổ nào mà chỉ chứ
-
-
Thành viên Mới
Hì, vấn đề của bạn thường mình can thiệp bằng lập trình trên CPU. Mình sẽ dùng bộ counterup nếu có tín hiệu từ cảm biến thì tăng 1 biến Mw10 chẳng hạn lên 1 đơn vị.
Ở wincc mình sẽ khai báo thêm external tag mw10 rồi mình gán mw10 vào I/O field nó sẽ hiển thị ra số lượng sản phẩm.
Còn 1 cách khác mình nghĩ sẽ can thiệp ngay trên wincc mà không cần phải lập trình plc. Đó là viết bằng c. Khai báo 1 biến x, nếu có tín hiệu xung từ cảm biến thì tăng biến x lên 1, rồi hiển thị biến x ra i/o filed. Đoạn code hiện thị biến x mình chưa biết làm thế nào.
Bạn nào có ý tưởng gì thì đưa ra cũng thảo luận nha
-
-
Thành viên Mới

Gửi bởi
duoichuottk
ví dụ như thế này ạ:
#include "apdefap.h"
int gscAction( void )
{
int xtao1,ytao1;
xtao1=GetLeft("Proj.pdl","Tao1");
ytao1=GetTop("Proj.pdl","Tao1");
if(GetTagBit("Bangtaitao")==1)
{
xtao1=xtao1-2;
ytao1=ytao1+2;
SetLeft("Proj.pdl","Tao1",xtao1);
SetTop("Proj.pdl","Tao1",ytao1);
}
return 0;
}
Đây mới là chạy xiên chung chung thôi, còn nếu a muốn chạy đúng quỹ đạo mong muốn, em nghĩ chắc phải viết phương trình đường thẳng quỹ đạo ra rồi cộng trừ cho phù hợp là đc
1.Cám ơn bạn duoichuotttk bạn cho mình hỏi hàm set left và set top có phải để update vị trí của vật tao1 theo xtao1 và ytao1 không?
hay nói cách khác setleft và settop làm cho xtao1 và ytao 2 tương ứng với Position x và Position y trong geometry đúng không bạn.
2. Và cho mình hỏi, thông thường các bạn viết một đoạn code C bằng cách nào. Vì mình thường ấn chuột phải, vào properties, rồi chọn geometry rồi ấn chuột phải vào cái bóng đèn chọn C action.
Nên thường thì đoạn đầu nó thường có dòng này
long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
mình thấy không giống dòng đầu của các bạn hay viết.
int gscAction( void )
Mình không hiểu chỗ này lắm, mong các bạn chỉ bảo giúp
CÁM ƠN BẠN VÀ CHÚC VUI ^^
Lần sửa cuối bởi eleufun, ngày 08-18-2012 lúc 12:21 AM.
Lý do: bổ sung câu hỏi
-
-

Gửi bởi
eleufun
1.Cám ơn bạn duoichuotttk bạn cho mình hỏi hàm set left và set top có phải để update vị trí của vật tao1 theo xtao1 và ytao1 không?
hay nói cách khác setleft và settop làm cho xtao1 và ytao 2 tương ứng với Position x và Position y trong geometry đúng không bạn.
2. Và cho mình hỏi, thông thường các bạn viết một đoạn code C bằng cách nào. Vì mình thường ấn chuột phải, vào properties, rồi chọn geometry rồi ấn chuột phải vào cái bóng đèn chọn C action.
Nên thường thì đoạn đầu nó thường có dòng này
long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
mình thấy không giống dòng đầu của các bạn hay viết.
int gscAction( void )
Mình không hiểu chỗ này lắm, mong các bạn chỉ bảo giúp
CÁM ƠN BẠN VÀ CHÚC VUI ^^
1. đúng
2. bạn vào chổ Global C Script phía bên trái màn hình wincc ấy, vào đó rồi lập trình nhé
-
-

Gửi bởi
eleufun
Hì, vấn đề của bạn thường mình can thiệp bằng lập trình trên CPU. Mình sẽ dùng bộ counterup nếu có tín hiệu từ cảm biến thì tăng 1 biến Mw10 chẳng hạn lên 1 đơn vị.
Ở wincc mình sẽ khai báo thêm external tag mw10 rồi mình gán mw10 vào I/O field nó sẽ hiển thị ra số lượng sản phẩm.
Còn 1 cách khác mình nghĩ sẽ can thiệp ngay trên wincc mà không cần phải lập trình plc. Đó là viết bằng c. Khai báo 1 biến x, nếu có tín hiệu xung từ cảm biến thì tăng biến x lên 1, rồi hiển thị biến x ra i/o filed. Đoạn code hiện thị biến x mình chưa biết làm thế nào.
Bạn nào có ý tưởng gì thì đưa ra cũng thảo luận nha
Bạn nên làm với tag ngoại vì nó đúng với "yêu cầu" hơn. Tag nội làm củng rất ok nhưng kiểu như nó che mắt con người và lừa người ta vậy, không liên quan gì đến PLC cả ^_^. Tuy nhiên nó lại là công cụ hửu ích cho những ai chuyên tâm nghiên cứu về WINCC, với tất cả những tag ngoại đều làm đc với Tag nội
bài của bạn nếu làm với Tag nội mình xin đóng góp ý kiến như sau:
Bạn tạo ra cái cảm biến bằng cách xác định tọa độ, nếu nó chạy đến tọa độ đó, tín hiệu cảm biến (Tag 1) sẻ "lên 1", và khi đó sẻ cho 1 Tag nội khác (Tag 2) để hiển thị I/O Field, nếu cảm biến lên 1 thì cứ cộng Tag 2 lên 1 đơn vị, như vậy bài toán đã đc giải
Chúc bạn thành công
-
-
Thành viên Mới

Gửi bởi
khanh my
2. bạn vào chổ Global C Script phía bên trái màn hình wincc ấy, vào đó rồi lập trình nhé
Cám ơn khanhmy mình đã làm được đoạn này, hóa ra tất cả những đoạn chương trình mình viết nó sẽ được lưu vào phần project funtions của phần Global scrips ^^. Lúc cần gán object nào chỉ cần chọn object đó liên kết đến đoạn scrip đó thôi.
Bạn ơi, mình đang thắc mắc ở chỗ nếu mình chèn các code c vào các thuộc tính trong phần geometry như position x,y width, height thì các biến trả về của đoạn code C sẽ là return x. (x ở đây có thể là tọa độ x, y hoặc độ dài rộng).
Vậy thì những thuộc tính mà giá trị trả về là màu sắc, hoặc yes no thì trong đoạn code mình return ra giá trị gì bạn nhỉ.
Hì ngại quá, mình chưa đủ 5 bài viết nên chưa đính kèm ảnh được, bạn vui lòng xem qua link bạn nha ^^
np1.upanh.com/b5.s29.d3/eddc37afcf318fe4fa2f1f80f1981a87_48246701.1.jpg
np7.upanh.com/b6.s30.d2/3493d486c0717eca95986476e058d271_48246687.2.jpg
-
-

Gửi bởi
elefun
Cám ơn khanhmy mình đã làm được đoạn này, hóa ra tất cả những đoạn chương trình mình viết nó sẽ được lưu vào phần project funtions của phần Global scrips ^^. Lúc cần gán object nào chỉ cần chọn object đó liên kết đến đoạn scrip đó thôi.
Bạn ơi, mình đang thắc mắc ở chỗ nếu mình chèn các code c vào các thuộc tính trong phần geometry như position x,y width, height thì các biến trả về của đoạn code C sẽ là return x. (x ở đây có thể là tọa độ x, y hoặc độ dài rộng).
Vậy thì những thuộc tính mà giá trị trả về là màu sắc, hoặc yes no thì trong đoạn code mình return ra giá trị gì bạn nhỉ.
Hì ngại quá, mình chưa đủ 5 bài viết nên chưa đính kèm ảnh được, bạn vui lòng xem qua link bạn nha ^^
np1.upanh.com/b5.s29.d3/eddc37afcf318fe4fa2f1f80f1981a87_48246701.1.jpg
np7.upanh.com/b6.s30.d2/3493d486c0717eca95986476e058d271_48246687.2.jpg
Ở phần màu, bạn kích vào cái bạn khoanh tròn đó, nhìn góc phải sẻ thấy dòng đại loại như sau 1FFFF, 5FFAA....., bạn thử liên hệ với mấy cái bên kia xem
Mình chưa làm theo kiểu này bao giờ nên k biết có đúng không, mình chỉ lập trình C trong Global C Script thui, chỉ những cái đơn giản là làm ở Properties, chứ phức tạp tý làm làm trong đó, nó dể quản lý hơn (trong C các màu củng như vậy mình thường xem mã màu của nó như mình đã đưa ở trên, không thì có cách khác dể nhớ là CO_tên màu bằng tiếng anh, ví dụ: CO_RED, CO_BLUE.....)
Chúc bạn thành công nhé
-
-
Thành viên Mới
Hì, cám ơn bạn. Mình thử thay đổi màu nền bằng 1 biến x có giá trị từ 0-255. Thấy màu nó thay đổi dần, từ đen sang đỏ 
Nó tương đương với việc có 3 màu red, green, blue tớ return x thì x ứng với giá trị từ 0 -255 của red :D. Còn 2 cái kia nghịch mãi cũng không thay đổi được. ^^ đoạn này tớ thắc mắc nghịch nghịch tí thui, thôi chuyển qua vấn đề khác cho vui. Cám ơn bạn nha. Hihi
-
-
Thành viên Mới
10-16-2012 10-27-27 AM.jpg
Khởi My ơi cho mình hỏi tý Mình viết C vào trong này đúng k. tại mình mới học wincc nên chưa biết bạn có thể giúp mình đc k! Mình cám ơn.
Tại mình viết trong này nhưng nó k chạy.
-
-
Thành viên Mới
Anh nào xem hộ em cái làm vật di chuyển mà mãi nó không chạy: 
Giúp em cái nha giờ mới học Wincc để làm đồ án. Thank
ec chưa được up
Lần sửa cuối bởi hoanghoa_d, ngày 11-26-2012 lúc 01:09 AM.
-
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à 07:13 PM.
Phiên bản 4.2.5
Phát triển bởi thành viên PLCVietNam®.
Đánh dấu