PDA

View Full Version : PLC S7-300 và các vùng nhớ trong PLC



tran_hieu0983
04-01-2011, 07:03 PM
Vùng nhớ PLC là gì? Chức năng của mỗi loại làm gì? Chúng ta cùng thảo luận và tìm hiểu nhé.
Thân chào

SiemensVietNam
04-07-2011, 12:43 AM
VÙNG NHỚ VÀ Ý NGHĨA
 Vùng chứa chương trình ứng dụng : Vùng chứa chương trình được chia thành 3 miền
OB ( Organization block) : Miền chứa chương trình tổ chức.
FC ( Function) : Miền chứa chương trình con, được tổ chức thành hàm và có biến hình thức để trao đổi dữ liệu.
FB ( Function block) : Miền chứa chương trình con, được tổ chức thành hàm và có khả năng trao đổi dữ liệu với bất cứ 1 khối chương trình nào khác. Các dữ liệu này phải được xây dựng thành một khối dữ liệu riêng ( Data Block khối DB).
 Vùng chứa tham số của hệ điều hành: Chia thành 7 miền khác nhau
I ( Process image input ) : Miền dữ liệu các cổng vào số, trước khi bắt đầu thực hiện chương trình, PLC sẽ đọc giá trị logic của tất cả các cổng đầu vào và cất giữ chúng trong vùng nhớ I. Thông thường chương trình ứng dụng không đọc trực tiếp trạng thái logic của cổng vào số mà chỉ lấy dữ liệu của cổng vào từ bộ đệm I.
Q ( Process Image Output) : Miền bộ đệm các dữ liệu cổng ra số. Kết thúc giai đoạn thực hiện chương trình, PLC sẽ chuyển giá trị logic của bộ đệm Q tới các cổng ra số. Thông thường chương trình không trực tiếp gán giá trị tới tận cổng ra mà chỉ chuyển chúng tới bộ đệm Q.
M ( Miền các biến cờ) : Chương trình ứng dụng sử dụng những biến này để lưu giữ các tham số cần thiết và có thể truy nhập nó theo Bit, Byte, Word hay Double Word.
T ( Timer) : Miền nhớ phục vụ bộ thời gian ( Timer) bao gồm việc lưu trữ giá trị thời gian đặt trước ( PV-Preset Value ), giá trị đếm thời gian tức thời ( CV –Current Value) cũng như giá trị Logic đầu ra của bộ thời gian.
C ( Counter) : Miền nhớ phục vụ bộ đếm bao gồm việc lưu trữ giá trị đặt trước ( PV- Preset Value), giá trị đếm tức thời ( CV _ Current Value)và giá trị logic đầu ra của bộ đệm.
PI : Miền địa chỉ cổng vào của các Modul tương tự ( I/O External input). Các giá trị tương tự tại cổng vào của modul tương tự sẽ được module đọc và chuyển tự động theo những địa chỉ. Chương trình ứng dụng có thể truy cập miền nhớ PI theo từng Byte ( PIB), từng từ PIW hoặc từng từ kép PID .
PQ : Miền địa chỉ cổng ra cho các module tương tự ( I/O External Output). Các giá trị theo những địa chỉ này sẽ được module tương tự chuyển tới các cổng ra tượng tự. Chương trình ứng dụng có thể truy nhập miền nhớ PQ theo từng Byte (PQB), từng Word (PQW) hoặc theo từng Double Word (PQD).
 Vùng chứa các khối dữ liệu: được chia làm 2 loại:
DB(Data Block) : Miền chứa dữ liệu được tổ chức thành khối. Kích thước cũng như số lượng khối do người sử dụng quy định, phù hợp với từng bài toán điều khiển. Chương trình có thể truy nhập miền này theo từng bit (DBX), Byte (DBB), Word (DBW) hoặc Double Word (DBD).
L (Local data block) : Miền dữ liệu địa phương, được các khối chương trình OB, FC, FB tổ chức và sử dụng cho các biến nháp tức thời và trao đổi dữ liệu của biến hình thức với những khối chương trình gọi nó. Nội dung của một khối dữ liệu trong miền nhớ này sẽ bị xoá khi kết thúc chương trình tương ứng trong OB, FC, FB. Miền này có thể được truy nhập từ chương trình theo bit (L), byte(LB), Word (LW) hoặc Double Word (LD)

quartz_47
04-13-2011, 11:16 PM
Có ai biết cách nạp một giá trị thực dấu phẩy động vào một biến khi lập trình không???Giúp mình với!!!!

thiquocvinh
04-13-2011, 11:19 PM
Có ai biết cách nạp một giá trị thực dấu phẩy động vào một biến khi lập trình không???Giúp mình với!!!!

Ví dụ bạn muốn nhập vào giá trị số thực là 10 . Thì bạn sẽ nhập vào là 10.0 . Bởi khi nhập 1 giá trị số thực thì bạn phải khai báo dấu chấm động " . "

tran_hieu0983
04-28-2011, 12:59 AM
Ví dụ bạn muốn nhập vào giá trị số thực là 10 . Thì bạn sẽ nhập vào là 10.0 . Bởi khi nhập 1 giá trị số thực thì bạn phải khai báo dấu chấm động " . "

Nhìn mặt avatar của bạn mình sợ quá ah. kaka. Cám ơn rất nhiều và nếu được bạn cho ví dụ có hình minh họa thì tốt quá như thế mọi người dễ hình dung hơn.
thân chào

nguyendien.tdh
04-28-2011, 05:19 AM
Bạn đang làm ví dụ j thì mới dùng đến cái này phải ko nhỉ ? Post lên mọi người ví dụ lên trên đó :d

thiquocvinh
04-28-2011, 10:08 AM
Nhìn mặt avatar của bạn mình sợ quá ah. kaka. Cám ơn rất nhiều và nếu được bạn cho ví dụ có hình minh họa thì tốt quá như thế mọi người dễ hình dung hơn.
thân chào

Hehe. Đôi lúc mình cũng nên có 1 cái gì đó mới mẽ tí. Thôi không chém gió nữa, đi vào vấn đề chính hen.
Mình cũng không rõ ý của chủ topic này là gì? Nhưng theo ý mình hiểu là về dấu chấm động trong khai báo số thực.
Ví dụ ở bộ so sánh số thực này. Mình muốn khai báo số 10 vào nha. Tại IN1 mình khai báo là "10" thì sẽ không được (hiện màu đỏ). Tại IN2 mình phải nhập vào là "10.0" thì mới được chấp nhận.
http://i1213.photobucket.com/albums/cc468/thiquocvinh/Untitled-1.png

doanvanthoi
05-20-2011, 03:24 PM
a oi cho e hoi ?
cai vung nho của timer CV –Current Value đó có thể lưu lại và đọc nó như thế nào?

chẳng hạn như e đang chạy một timer t0 đc thoi gian ts thì đừng lại. Vậy muốn chạy tiếp giá trị ts đó thì làm thế nào ?

langtutlhp
08-03-2011, 10:05 AM
Trong chương trình s7300 của e có nhiều tiếp điểm thường đóng kí hiệu như thế này DB208.DBX1 nghĩa là gì hả các bác?

tran_hieu0983
08-03-2011, 10:19 AM
Trong chương trình s7300 của e có nhiều tiếp điểm thường đóng kí hiệu như thế này DB208.DBX1 nghĩa là gì hả các bác?

Đây là vùng nhớ DB = Data block hay trong tiếng việt gọi là khối dữ liệu. Nơi lưu trữ dữ liệu.
DB??DBX?? có nghĩa là byte thứ ?? của khối dữ liệu ??.
Bạn có thể sử dụng nó như vùng nhớ đa dụng tùy chọn như vùng nhớ M. Và khi sử dụng và khai báo các khối hàm SFB, FB phải cần có DB lưu trữ thông tin cho nó.
Vậy là ok rồi.
Còn muốn hiểu SFB? FB? Chịu khó lấy manual ra đọc hay F1 gọi help đọc.
Nói vài chữ thì bạn có thể hiểu ngay nhưng để một người muốn hiểu và sử dụng từ nghiên cứu thì rất cực.
Hãy thử và cám nhận

hiennguyen
08-03-2011, 10:28 AM
ủa hình như em nhớ DB??.DBX là bit thứ ??? của khối ??,còn DB??.DBB?? mới là byte

tran_hieu0983
08-03-2011, 10:42 AM
ủa hình như em nhớ DB??.DBX là bit thứ ??? của khối ??,còn DB??.DBB?? mới là byte

ý nhầm. sorry em nhé. Dạo này đầu óc để đâu đâu đó. Đang lo mấy hợp đồng nên lu xu bu

hiennguyen
08-03-2011, 10:57 AM
^^
DB208.DBX1.0 là bit 1.0 trong DB 208 đó bạn,giống như kiểu M1.0 đó,mà giờ dữ liệu nhiều nên chứa trong DB cho tiện,cái bạn ghi hình như thiếu phần sau đó,bit là phải dạng như 1.?

langtutlhp
08-03-2011, 01:12 PM
^^
DB208.DBX1.0 là bit 1.0 trong DB 208 đó bạn,giống như kiểu M1.0 đó,mà giờ dữ liệu nhiều nên chứa trong DB cho tiện,cái bạn ghi hình như thiếu phần sau đó,bit là phải dạng như 1.?

cụ thể nó như thế này bác ạ

dohung
08-03-2011, 01:22 PM
cụ thể nó như thế này bác ạ

Thế này nhé , vùng nhớ DB sẽ được cấu hình dưới dạng : DBa.DBbccc
Trong đó :a là chỉ số của khối DB bạn đang dùng.Gỉa sử như dùng DB208 thì bạn phải tạo 1 khối DB208 trong step 7 manager.
b là mã vùng dữ liệu quy định như sau :
+b = X : địa chỉ bit
+b = B :địa chỉ theo byte
+b =W :địa chỉ theo Word, 2 byte
+b =D :địa chỉ theo DWord, 4 byte
ccc chính là địa chỉ .
Ví dụ : DB208.DBX15.6 :khối DB208,X:địa chỉ theo bit;15.6 là bit thứ 7 của byte thứ 16
DB1.DBD10 :khối DB1,D:Địa chỉ theo Dword,10 :từ byte thứ 10 đến byte thứ 13

Khi sử dụng DB,địa chỉ sẻ tự phân vùng khi bạn khai báo,không sợ trùng địa chỉ.DB có 2 hình thức sử dụng là Global và Local.

langtutlhp
08-03-2011, 01:29 PM
bit tmpbool e không hiểu là dạng gì?e tìm location nhưng không tìm được.

langtutlhp
08-03-2011, 01:31 PM
cảm ơn bác rất nhiều.rất chi tiết.

dohung
08-03-2011, 01:35 PM
bit tmpbool e không hiểu là dạng gì?e tìm location nhưng không tìm được.

Bit #tmpbool , định dạng # chính là định dạng khi bạn khởi tạo 1 hàm mới,FB hay FC.Sau khi viết xong hàm,bạn gọi hàm này ra,ngay tại vị trí tmpbool,bạn có thể gán 1 địa chỉ loại bool bất kì.Ban nên xem phương pháp tạo 1 FC trên diễn đàn nhé

langtutlhp
08-03-2011, 06:44 PM
2 lệnh (N) negative RLO adge detection và lệnh (NEG) là gì hả các bác?theo e được biết thì chúng đều phát hiện sườn xuống cả.

hiennguyen
08-04-2011, 12:10 AM
N(Negative RLO Edge Detection) cái này mới là bắt xung cạnh xuống của tiếp điểm mình đã đặt mà ko cần cấp nguồn cho tiếp điểm đó,còn khối hàm NEG(Address Negative Edge Detection) nó chỉ bắt xung cạnh xuống của tiếp điểm khi có nguồn cấp cho nó,có gì bạn tham khảo thêm phần help trong đó có ví dụ cụ thế ,pro nào biết thì chỉ thêm nhé ^^

hiennguyen
08-04-2011, 12:20 PM
http://www.mediafire.com/?8bjwv2a5dbbqw0s nè bạn ^^,lúc đầu bạn cứ kích I0.1 với I0.2 trước là bạn sẽ thấy sự khác biệt,đừng bật I0.0 nhe

langtutlhp
08-05-2011, 01:07 PM
e hiểu sự khác nhau của 2 lệnh rồi.nhưng vd của bác theo e thấy chưa thuyết phục lắm

trungchanh108
09-21-2011, 10:22 PM
Đây là vùng nhớ DB = Data block hay trong tiếng việt gọi là khối dữ liệu. Nơi lưu trữ dữ liệu.
DB??DBX?? có nghĩa là byte thứ ?? của khối dữ liệu ??.
Bạn có thể sử dụng nó như vùng nhớ đa dụng tùy chọn như vùng nhớ M. Và khi sử dụng và khai báo các khối hàm SFB, FB phải cần có DB lưu trữ thông tin cho nó.
Vậy là ok rồi.
Còn muốn hiểu SFB? FB? Chịu khó lấy manual ra đọc hay F1 gọi help đọc.
Nói vài chữ thì bạn có thể hiểu ngay nhưng để một người muốn hiểu và sử dụng từ nghiên cứu thì rất cực.
Hãy thử và cám nhận

Thầy có manual về SFB với FB ko ạh cho e xin với. Phần help của e bị hư mất rồi. Tks thầy nhiều.

hiennguyen
09-21-2011, 11:27 PM
STEP 7 System and Standard Functions for S7 300 and S7 400.pdf
http://www.mediafire.com/?gmbj9012agx47t9
1 file tiếng việt full về s7-300 trong đó chức năng về các khối SFC được giải thích khá cụ thể có ví dụ luôn
http://www.mediafire.com/?gslsozybioumhok
file này thì chỉ về cách khai báo và sử dụng DB khá cụ thể,cách sử dụng các khối SFB có ví dụ mẫu, cũng tiếng việt ,phần cuối có kèm theo ví dụ về các ứng dụng nữa như analog,hsc,..
http://www.mediafire.com/?8c5l9a6k9kbd5g4

tankenler
09-28-2011, 12:36 AM
các bác có tài liệu về lệnh mở khối không?. .share em xem tham khảo với!

tankenler
09-30-2011, 11:15 PM
có ai giúp mình ko?

trungchanh108
10-02-2011, 05:39 PM
Làm thế nào mình có thể ghi dữ liệu vào trong các khối dữ liệu DB được. Mình cũng đọc tài liệu nhưng không thấy phần nào nói về ghi dữ liệu vào DB cả. Mình cũng thử tạo một khối DB nhưng lại ko thể insert các địa chỉ cũng như dữ liệu mình tạo vào. Mong mọi người giúp đỡ. Cảm ơn nhiều.
96

tran_hieu0983
10-02-2011, 07:28 PM
Làm thế nào mình có thể ghi dữ liệu vào trong các khối dữ liệu DB được. Mình cũng đọc tài liệu nhưng không thấy phần nào nói về ghi dữ liệu vào DB cả. Mình cũng thử tạo một khối DB nhưng lại ko thể insert các địa chỉ cũng như dữ liệu mình tạo vào. Mong mọi người giúp đỡ. Cảm ơn nhiều.
96

Dữ liệu sẽ được tự tạo khi link giữa DB tới SFB hay FB. Nếu sử dụng DB như một khối dữ liệu đa dụng thì chỉ cần đánh tên, chọn kiểu dữ liệu ( Bool, interger, real, time....), kiểu vùng nhớ ( Bit, byte, word, Dword) thì và save lại thì bạn có thể sử dụng với kiểu da dụng rồi. Và truy xuất lúc này là theo địa chỉ hoàn toàn không có vấn đề chỉ cần khối dữ liệu DB đó không bị khoá.

trungchanh108
10-03-2011, 05:33 PM
Thầy có ví dụ mẫu nào ko ah. Có thể share cho e tham khảo với đc không. Tks thầy.

tran_hieu0983
10-03-2011, 09:24 PM
Thầy có ví dụ mẫu nào ko ah. Có thể share cho e tham khảo với đc không. Tks thầy.

Đang làm ví dụ và mai gởi cho bạn và hình ảnh hướng dẫn kèm theo.

tran_hieu0983
10-04-2011, 01:53 PM
Bước 1 là khởi tạo khối DB
http://img830.imageshack.us/img830/7739/khoitaodb.jpg (http://imageshack.us/photo/my-images/830/khoitaodb.jpg/)

Bước 2: Open khối DB bằng cách Double click vào khối để mở khối DB và khai báo thông số.
http://img268.imageshack.us/img268/734/khaibaothongsodb.jpg (http://imageshack.us/photo/my-images/268/khaibaothongsodb.jpg/)

http://img821.imageshack.us/img821/5189/khaibaothongsodb2.jpg (http://imageshack.us/photo/my-images/821/khaibaothongsodb2.jpg/)

Bước 3: Viết chương trình trong OB1 ( OBxx, FB, FC..) và lấy thông số: Có thể lấy tên đặt trong DB hoặc địa chỉ trong DB

http://img291.imageshack.us/img291/3379/vietchuongtrinh.jpg (http://imageshack.us/photo/my-images/291/vietchuongtrinh.jpg/)

DB1.DBX2.0 = Start // Đây là địa chỉ trong DB1, bit Start.

tran_hieu0983
10-04-2011, 01:56 PM
http://img695.imageshack.us/img695/3098/hoanthanhmuccb.jpg (http://imageshack.us/photo/my-images/695/hoanthanhmuccb.jpg/)

http://www.mediafire.com/?i215mq9asr6l1sf Ví dụ tham khảo, đơn giản nhưng có thể nói được về DB như thế nào thay cho biến M ^^.

Chúc thành công.

trungchanh108
10-04-2011, 06:54 PM
Cảm ơn thầy, e sẽ làm thử. Chúc thầy vui vẻ và thành công.

trungchanh108
10-04-2011, 11:46 PM
Ví dụ của thầy e đã làm lại và rất ok. Cho e hỏi, giá trị của vùng nhớ DB mình có thể nhập trước. Vậy khi mình đọc một giá trị về sau đó nhập vào vùng nhớ DB thì ntn hả thầy. Em cảm ơn...

tran_hieu0983
10-05-2011, 01:31 PM
Ví dụ của thầy e đã làm lại và rất ok. Cho e hỏi, giá trị của vùng nhớ DB mình có thể nhập trước. Vậy khi mình đọc một giá trị về sau đó nhập vào vùng nhớ DB thì ntn hả thầy. Em cảm ơn...

thì nếu em dùng bit thì vẫn 1 in 1 out bình thường, còn muốn lưu trữ thông số thì em có thể dùng lệnh MOVE bình thường và tất nhiên khi em chọn kiểu dữ liệu nào thì đầu vào phải tương ứng như thế mới ok.

Sau khi em khai báo thành công thì em có thể sử dụng nó như tham số biến M bình thường. Còn kiểu dữ liệu thì em phải chú ý là Bool, interger, Double Interger, Real, Time,... và vùng nhớ lưu trữ nó: Bit, byte, word, Dword,... Phần này em tìm hiểu thêm trong kỹ thuật số 1 & 2. Tốt nhất nên đọc tài liệu viết bởi các thầy ở BK vì đầy đủ hơn.

tankenler
10-06-2011, 12:40 AM
thầy có ví dụ về lệnh mở khối không ạ?

tran_hieu0983
10-06-2011, 02:06 PM
thầy có ví dụ về lệnh mở khối không ạ?

Cái đó đơn giản mà bạn chỉ cần khối DB nào truy xuất thì bạn gọi nó ra trong OB, FB,FC đó thôi. Bạn thử đi không có khó.

tankenler
10-06-2011, 09:33 PM
Cái đó đơn giản mà bạn chỉ cần khối DB nào truy xuất thì bạn gọi nó ra trong OB, FB,FC đó thôi. Bạn thử đi không có khó.

cám ơn thầy nhé

hoanhudien
10-07-2011, 01:13 AM
cho e hỏi mình có thể tận dụng counter để đếm khi nào lên 1 thì set RLO =1 có dc ko ......e ko rành lắm mong jup đỡ

trungchanh108
10-07-2011, 06:33 PM
thì nếu em dùng bit thì vẫn 1 in 1 out bình thường, còn muốn lưu trữ thông số thì em có thể dùng lệnh MOVE bình thường và tất nhiên khi em chọn kiểu dữ liệu nào thì đầu vào phải tương ứng như thế mới ok.

Sau khi em khai báo thành công thì em có thể sử dụng nó như tham số biến M bình thường. Còn kiểu dữ liệu thì em phải chú ý là Bool, interger, Double Interger, Real, Time,... và vùng nhớ lưu trữ nó: Bit, byte, word, Dword,... Phần này em tìm hiểu thêm trong kỹ thuật số 1 & 2. Tốt nhất nên đọc tài liệu viết bởi các thầy ở BK vì đầy đủ hơn.
E viết bằng LAD cũng đã thử dùng lệnh MOVE như thầy nói nhưng chương trình báo là không hỗ trợ kiểu dữ liệu này. trong khi e dùng lệnh L(load) và T(tranfer) thì ko có hiện tượng báo lỗi. Cho e hỏi có phải khi viết với vùng nhớ này để ghi một data> bit thì ko thể dùng Lad.

trungchanh108
10-07-2011, 09:58 PM
Hic, e viết sai cấu trúc vùng nhớ. Mới kiểm tra lại. Xin lỗi mọi người.

ltductam
11-10-2011, 10:06 AM
anh Hiếu ơi. Em có một FC bị khóa, giờ làm sao mở nó ra để xem hả anh.
163

thiquocvinh
11-10-2011, 10:36 AM
anh Hiếu ơi. Em có một FC bị khóa, giờ làm sao mở nó ra để xem hả anh.
163

Khối FC105 là khối hàm nằm trong vùng thư viện với chức năng là SCALE - thuộc vào Analog.
bạn vào bài viêt Analog để tham khảo thêm nha.
http://plcvietnam.com.vn/showthread.php?t=11

thanhke_auto
11-17-2011, 04:50 PM
các anh cho em hỏi chút là mình có nên dùng chương trình con FB(khối) để sử dụng đk khối DB thay vì phải tốn nhiều vùng nhớ trung gian M.vì vùng nhớ M nó vấn có hạn chế. theo em nghĩ thì khi mình sư dụng chương trình con thì làm trên FC có hạn chế so với FB.cho em hỏi là sử dụng FB và DB thì có chiếm dung lượng bộ nhớ nhiều không vậy,và em hiểu là mình sử dụng khối FB thì sẽ tăng thêm đk vùng nhớ hơn

nonumber.ksd
12-14-2011, 11:07 AM
Bit #tmpbool , định dạng # chính là định dạng khi bạn khởi tạo 1 hàm mới,FB hay FC.Sau khi viết xong hàm,bạn gọi hàm này ra,ngay tại vị trí tmpbool,bạn có thể gán 1 địa chỉ loại bool bất kì.Ban nên xem phương pháp tạo 1 FC trên diễn đàn nhé
CHÀO ANH! TÔI ĐANG GẶP MỘT VẤN ĐỀ NHO NHỎ NÀY NHƯNG CHƯA TÌM ĐƯỢC LÝ DO VÌ SAO?
1. CHẲNG LÀ TÔI ĐANG LẬP TRÌNH S7200. TRONG CHƯƠNG TRÌNH CON TÔI CÓ DÙNG BẢNG LOCAL VARIBLE. NHƯNG KHI KHAI BÁO ĐẦU RA OUT NÓ CHỈ ĐƯỢC CÓ 5 ĐỊA CHỈ. KHÔNG BIẾT MUỐN THÊM SỐ ĐẦU RA OU THÌ LÀM THẾ NÀO?
TRÂN TRỌNG CẢM ƠN VÀ MONG SỚM NHẬN ĐƯỢC TRẢ LỜI TỪ BẠN. NẾU ĐƯỢC XIN GỬI VỀ ĐỊA CHỈ MAIL: nonumber.ksd@gmail.com

anhlv.ddt
12-14-2011, 11:16 AM
CHÀO ANH! TÔI ĐANG GẶP MỘT VẤN ĐỀ NHO NHỎ NÀY NHƯNG CHƯA TÌM ĐƯỢC LÝ DO VÌ SAO?
1. CHẲNG LÀ TÔI ĐANG LẬP TRÌNH S7200. TRONG CHƯƠNG TRÌNH CON TÔI CÓ DÙNG BẢNG LOCAL VARIBLE. NHƯNG KHI KHAI BÁO ĐẦU RA OUT NÓ CHỈ ĐƯỢC CÓ 5 ĐỊA CHỈ. KHÔNG BIẾT MUỐN THÊM SỐ ĐẦU RA OU THÌ LÀM THẾ NÀO?
TRÂN TRỌNG CẢM ƠN VÀ MONG SỚM NHẬN ĐƯỢC TRẢ LỜI TỪ BẠN. NẾU ĐƯỢC XIN GỬI VỀ ĐỊA CHỈ MAIL: nonumber.ksd@gmail.com
Theo hiểu biết của tôi:
đặt con trỏ vào kiểu biến ta muốn thêm (IN, IN/OUT, OUT hay TEMP), nhấn phím phải chuột và
chọn Insert > Row below để thêm vào một tham số mới ở vị trí dưới con trỏ với dạng tham số thích hợp.
Còn không đúng mong bác chém nhẹ ^^!

anhsaodem
12-14-2011, 01:36 PM
CHÀO ANH! TÔI ĐANG GẶP MỘT VẤN ĐỀ NHO NHỎ NÀY NHƯNG CHƯA TÌM ĐƯỢC LÝ DO VÌ SAO?
1. CHẲNG LÀ TÔI ĐANG LẬP TRÌNH S7200. TRONG CHƯƠNG TRÌNH CON TÔI CÓ DÙNG BẢNG LOCAL VARIBLE. NHƯNG KHI KHAI BÁO ĐẦU RA OUT NÓ CHỈ ĐƯỢC CÓ 5 ĐỊA CHỈ. KHÔNG BIẾT MUỐN THÊM SỐ ĐẦU RA OU THÌ LÀM THẾ NÀO?
TRÂN TRỌNG CẢM ƠN VÀ MONG SỚM NHẬN ĐƯỢC TRẢ LỜI TỪ BẠN. NẾU ĐƯỢC XIN GỬI VỀ ĐỊA CHỈ MAIL: nonumber.ksd@gmail.com
Em thấy bác này bắn ra 1 tràng tiếng anh, tưởng giỏi tiếng anh lắm, cái này vào google tìm là ra ngay, có thế cũng phải hỏi, mà chém bên box 200 nghe kinh
bài hỏi về 200 mà đưa vào box của 300, không hiểu có biết đọc và hiểu nữa không

ngdnhanbk
12-27-2011, 12:34 AM
các anh cho em hỏi chút là mình có nên dùng chương trình con FB(khối) để sử dụng đk khối DB thay vì phải tốn nhiều vùng nhớ trung gian M.vì vùng nhớ M nó vấn có hạn chế. theo em nghĩ thì khi mình sư dụng chương trình con thì làm trên FC có hạn chế so với FB.cho em hỏi là sử dụng FB và DB thì có chiếm dung lượng bộ nhớ nhiều không vậy,và em hiểu là mình sử dụng khối FB thì sẽ tăng thêm đk vùng nhớ hơn
Cho mình hỏi chương trình con FC hạn chế so với FB điểm nào? Mình thấy FC tiện lợi hơn vì nó không cần khối dữ liệu cá biệt DB đi kèm

tran_hieu0983
12-27-2011, 02:31 PM
Cho mình hỏi chương trình con FC hạn chế so với FB điểm nào? Mình thấy FC tiện lợi hơn vì nó không cần khối dữ liệu cá biệt DB đi kèm

FC thì chỉ có thể xài các biến tạm L trong vùng FC chứ không thể truy xuất thông tin dữ liệu từ các khối FC, FB, OB khác.
Còn FB thì có khối DB - Data block lưu trữ thông tin những biến L của FB lại và bạn có thể truy xuất theo địa chỉ ở phạm vi như biến toàn cục.

Lang_Tu.TM
02-28-2012, 11:13 AM
Cho mình hỏi chương trình con FC hạn chế so với FB điểm nào? Mình thấy FC tiện lợi hơn vì nó không cần khối dữ liệu cá biệt DB đi kèm
Mình sẽ trả lời thêm bạn như thế này
Khối FC: Nhược điểm của khối này là nội dung của các biến tạm thời (Kiểu TEMP) không được lưu giữ lại cho những vòng quét sau. Ví dụ vòng quét 1 bạn sẽ thu được dữ liệu giả sử là số thập phân 15 trong biến tạm thời. Nhưng tới vòng quét sau giá trị thập phân là 30. Như vậy bạn sẽ không sử dụng được giá trị thập phân 15 nữa vì nó đã bị xóa để ghi giá trị mới 30 cho vòng quét sau đó. Khắc phụ nhược điểm này của khối FC S7-300/400 cung cấp một loại khối có tính năng tương tự như FC nhưng lại có khả năng lưu giữ lại nội dung của các biến tạm thời cho các vòng quét đó chính là khối FB. Loại biến tạm thời có nội dung được lưu giữ lại này có tên là STAT (viết tắt của STATIC). Phương thức lưu giữ lại nội dung của các biến tạm thời này được hệ điều hành thực hiện nhờ khối DB. Như vậy cùng ví dụ với 2 số thập phân 15 và 30 của 2 vòng quét như ví dụ với khối FC thì khối FB có thể sử dụng cả 2 số này. Tức là bạn sẽ lấy số 15 hoặc số 30 khi bạn cần, còn khối FC bạn chỉ có thể lấy được số 30 mà thôi. Thân chào và chúc thành công

hanhphuong8h
03-19-2012, 10:25 AM
thi stop roi run lai

duykhanh_dtd
03-19-2012, 05:55 PM
a oi cho e hoi ?
cai vung nho của timer CV –Current Value đó có thể lưu lại và đọc nó như thế nào?

chẳng hạn như e đang chạy một timer t0 đc thoi gian ts thì đừng lại. Vậy muốn chạy tiếp giá trị ts đó thì làm thế nào ?
timer trong s7 300 cho phép bạn lựa chon vùng nhớ để lưu giá trị đếm tức thời mà,chi việc độc gia trị vùng nhớ mà bạn chọn thôi.
trong s7 300 có loại timer có nhớ,khi tín hiệu điều khiển = 1 thì timer bắt đầu đếm, =0 thì timer dừng đếm, =1 lại thì đếm tiếp giá trị đó.

chi.tam92
03-25-2012, 02:10 PM
timer trong s7 300 cho phép bạn lựa chon vùng nhớ để lưu giá trị đếm tức thời mà,chi việc độc gia trị vùng nhớ mà bạn chọn thôi.
trong s7 300 có loại timer có nhớ,khi tín hiệu điều khiển = 1 thì timer bắt đầu đếm, =0 thì timer dừng đếm, =1 lại thì đếm tiếp giá trị đó.
bạn có thể sử dụng timer có nhớ đi trong s7-300 timer trẽ theo sường lên có nhớ - (SS)

trieuca_tn
05-05-2012, 11:52 PM
theo mình biết thi DB là khối chúa dữ liệu chương trình
khi gọi các khối chức năng fc hay fb đều có các db đi kèm,và trong db này đều có các dũ liệu có sẵn ,mình có thể thay đổi dũ liệu trong db này không và khi vận hành có sẩy ra lôi không các bạn?

ncrazy
05-05-2012, 11:56 PM
chỉ có fb có db đi kèm thôi, bạn có thể làm gì với db này củng được nhưng tốt nhất là chỉ đọc thôi, còn ghi dữ liệu thì vận hành xảy ra lỗi là rất cao đó

thanhke_auto
05-06-2012, 12:14 AM
chỉ có fb có db đi kèm thôi, bạn có thể làm gì với db này củng được nhưng tốt nhất là chỉ đọc thôi, còn ghi dữ liệu thì vận hành xảy ra lỗi là rất cao đó
anh có thể ví dụ 1 số lỗi ghi dữ liệu được không ạ, nếu 1 hệ thống dùng 1 giao diện giám sát và cần nhập DL vào thì nên dùng M chứ không nên dùng DL của DB hả anh. bây giờ nếu mình cần đọc giá trị ko điện nào đó như xung hay nhiệt độ ,... thì MOV vào DL của DB ko lỗi đâu đúng ko anh. cái này là kinh nghiệm các anh làm thực tế mà biết nên em muốn anh chia sẻ chút.
thank !

trieuca_tn
05-06-2012, 12:27 AM
dữ liệu trong db ứng vs môi fb phải không a.thế còn UDT là gì ạ?

ncrazy
05-06-2012, 12:37 AM
DB có 2 loại, loại thường để lưu dữ liệu, cái này truy cập vô tư, không sao cả, loại kia là instance db, là được tạo ra theo cấu trúc của 1 fb nào đó, loại này lưu dữ liệu đang xử lý của db, nếu bạn đọc thì không sao, nếu bạn ghi vào thì có 2 trường hợp, bị fb ghi đè, không sao, ghi đè fb, dữ liệu bị sai có thể tính toán sai hoặc fb báo lỗi....
còn UDT là giống như là cấu trúc mẫu của DB do siemens soạn sẵn dành cho các fb mà siemens viết sẵn, khi mình dùng các fb này thì mình tạo DB và khai báo kiểu là instance of UDT ....

trieuca_tn
05-06-2012, 11:04 AM
anhn oi!em có vd này anh xem giùm em đc ko ạ em xem mãi ma không hiểu
http://www.mediafire.com/view/?cjnp4mgmam63n4a

trieuca_tn
05-06-2012, 10:52 PM
dữ liệu trong UDT có giống vói DB không ạ,hay UDT đi với khối DB ạ

trieuca_tn
05-12-2012, 10:50 PM
khối này trong lập trinh PLC có nhiệm vụ gì thế các bạn?
theo mình biết thì khố này do người dùng tự tao ra và định nghĩa cho nó phải không ạ?
gọi khối này trên manager ngư goi các khối ob hay fc vây,
hình như nó chỉ sử dụng để quản lý đỉ chỉ,và kiểu dũ liêu phải không ạ nó có tên (data type) kiêu dữ liệu
các bác có thể giải thích giúp mình với?
cảm ơn các bac nhiều!

sincere
06-06-2012, 07:42 AM
Cảm ơn langtutlhp đã lập topic này
Em cảm ơn Thầy Hiếu, mặc dù ở Hà Nội và chưa được gặp mặt thầy nhưng vẫn xin phép gọi là thầy vì đã đọc bao nhiêu chữ của thầy rồi :D. Đang cần tìm hiểu về DB thì gặp ngay topic này ... :D
Cảm ơn tất cả các anh, các bạn....
Xin chúc mọi người môt ngày tốt lành...

nguyenanhtuandhdi4
06-07-2012, 12:40 AM
mình đang dùng model mở rộng CP343-2 cho mạng Asi. thì dùng khối DB này để lấy địa chỉ từ CP 343-2 để đưa về PLC s7 300 được không.khối CP này chiếm 16 bye vào và 16 bye ngõ ra của CPu s7 300

nguyenanhtuandhdi4
06-07-2012, 01:21 AM
các bạn cho mình hỏi là Vùng nhớ Analog trong S7 300 là như thến nào vậy. mình đọc tài liệu thấy có đoạn đó mà không hiểu . mong các bác chỉ giáo

miuquy
08-18-2012, 10:26 PM
các anh cho em hỏi, 2 vùng nhớ V và M giống và khác nhau như thế nào. em có thể truy xuất M được nhưng V thì ko. các anh trả lời giúp em. thanks

aubaoquoc
08-19-2012, 12:14 AM
- Giải thích theo kiểu " hai lúa" nhé
- Trong PLC Siemens vùng nhớ V và M đều là dạng lưu trữ biến dữ liệu, nhưng vùng nhớ M được cất vào 1 nơi có nguồn năng lượng nuôi nó cao hơn khi ta không cấp điện cho nó.
- V có thể lưu dữ liệu vài chục giờ hoặc mất ngay lập tức khi ta ngắt điện, M lưu vài ngày là do có pin hay tụ dung lượng cao lưu giữ
- Biết thế thôi.

miuquy
08-19-2012, 02:25 PM
vậy cách truy xuất vùng nhớ V như thế nào vậy anh?Vùng nhớ M em truy xuất bình thường nhưng V thi em ko biết.các anh giúp em với

tran_hieu0983
08-20-2012, 12:45 AM
vậy cách truy xuất vùng nhớ V như thế nào vậy anh?Vùng nhớ M em truy xuất bình thường nhưng V thi em ko biết.các anh giúp em với

Chào bạn Miuquy

Không biết bạn hỏi cho dòng sản phẩm nào của siemens 300/400 hay 200 vì dòng 300/400 không có vùng nhớ V nhé

S7-200 mới có V. Còn 300 thì có vùng nhớ DB thay cho vùng nhớ V bên 200 và dữ liệu của DB nhiều hơn ( đơn giản cho bộ nhớ của 300 lớn hơn rất nhiều 200).

miuquy
08-20-2012, 10:38 AM
cảm ơn anh,em hiểu rồi. em hỏi về 300. đúng là càng học càng thấy mình còn kém.

tran_hieu0983
08-20-2012, 10:43 AM
Như vậy vùng nhớ V trong 300 không có nhé mà thay bằng DB nó gọi là "data block"

Bạn tham khảo tại đây:
http://plcvietnam.com.vn/threads/582-Vung-nho-DB-trong-S7-300

reddevildtv
09-20-2012, 05:10 PM
thanks to all, it's very helpful, sorry because my PC havent installed unikey

tqh12a1
12-14-2012, 05:30 AM
Trong khối DB, thì ngoài các cách truy nhập là DBX, DBB, DBW, DBD thì còn cách nào nữa ko ah ? nếu mình muốn truy nhập vào ô nhớ có địh dạng là Dint, Dword thì phải làm ntn ?

toilq30
12-14-2012, 06:31 AM
Như vậy vùng nhớ V trong 300 không có nhé mà thay bằng DB nó gọi là "data block"

Bạn tham khảo tại đây:
http://plcvietnam.com.vn/threads/582-Vung-nho-DB-trong-S7-300

Bài này "not found" admin ơi !

chunghappy
03-20-2013, 09:09 PM
Bài viết rất hay, biết thế lúc đầu học PLC thì cày trên PLC viêt nam đầu tiên, mất bao nhiêu công sức mới học được chút ít, mà các pác cao thủ cho em hỏi với, lập lại 1 câu hỏi của một bác trên diễn đàn này, UDT là gì hở các bác, sử dụng ntn? em cũng có 1 ct sử dụng UDT mà ko hiểu lắm, kiểu như DB mà ko phải là DB

Mechatronic_Hieu
05-28-2013, 07:26 PM
Các bạn phân biệt rõ thế này:
-DB là khối dữ liệu
-UDT là kiểu dữ kiệu do người dùng định nghĩa, giống như kiểu dữ liệu bit,byte,time,int,dint... và cách sử dụng thì như các kiểu dữ liệu khác thôi.
Tại sao phải có UDT: vì nhiều lúc người dùng cần định nghĩa 1 kiểu dữ liệu mà các kiểu int,dint,real..k đáp ứng dc mục đích. vd: tạo UDT profile drive để giao tiếp drive.

dienkhung
05-29-2013, 01:38 AM
Bài viết rất hay, biết thế lúc đầu học PLC thì cày trên PLC viêt nam đầu tiên, mất bao nhiêu công sức mới học được chút ít, mà các pác cao thủ cho em hỏi với, lập lại 1 câu hỏi của một bác trên diễn đàn này, UDT là gì hở các bác, sử dụng ntn? em cũng có 1 ct sử dụng UDT mà ko hiểu lắm, kiểu như DB mà ko phải là DB

UDT là "UserDefine Data Type" là kiểu dữ liệu do người dùng định nghĩa ra. Nếu các bạn đã lập trình hướng đối tượng trong C, C++, Java rồi thì sẽ hiểu hơn về UDT.
Chăng hạn bạn có một đối tượng là Motor vậy bạn sẽ có những thông số liên quan đến motor như sau
Start -> bool
Stop -> bool
Speed Reference -> Real
Speed Feedback -> real
..... và bạn định nghĩa một biến Motor có các thuộc tính như thế thì sau này khi bạn gán một biến motor cho một đối tượng motor thì nó có đầy đủ nhưng thuộc tính trên và bạn chỉ việc đem ra sử dụng.

loc.plsoft
06-30-2013, 02:59 PM
Em có thắc mắc xn hỏi các anh đi trước ợ:
http://www.data.webdien.com/photo/up/711ff4bd50b71dc6690b4e3a1a7e985f.png
http://www.data.webdien.com/photo/up/62220f1eb47126c17edf2a34fc496368.png

Bây giờ em muốn thêm biến NGAY vào bảng Var để dễ theo dõi thì phải đánh địa chỉ là thế nào ạ ??

gcdgcd
06-30-2013, 10:21 PM
Em có thắc mắc xn hỏi các anh đi trước ợ:
.................................................. .......

Bây giờ em muốn thêm biến NGAY vào bảng Var để dễ theo dõi thì phải đánh địa chỉ là thế nào ạ ??

đọc ngày ở đây nhé
1017

P/S: Đó là biến tạm trong OB1, bạn coi trong chương trình người ta move nó vô vùng nhớ nào thì monitor biến đó, còn ko thì bạn viết thêm đoạn move đó rồi monitor.

:95:

anhlv.ddt
07-01-2013, 09:59 AM
Em có thắc mắc xn hỏi các anh đi trước ợ:
http://www.data.webdien.com/photo/up/711ff4bd50b71dc6690b4e3a1a7e985f.png
http://www.data.webdien.com/photo/up/62220f1eb47126c17edf2a34fc496368.png

Bây giờ em muốn thêm biến NGAY vào bảng Var để dễ theo dõi thì phải đánh địa chỉ là thế nào ạ ??
Bạn đọc chương trình từ vùng nhớ LB14 ra, nó mặc định là giá trị ngày của bộ thời gian thực nhé

tran_hieu0983
07-01-2013, 12:31 PM
Bạn đọc chương trình từ vùng nhớ LB14 ra, nó mặc định là giá trị ngày của bộ thời gian thực nhé

Sr xíu nha. Kiểu dữ liệu đó phải lấy phía trên mới được kiểu OB1_Date_Time.... kiểu Date_and_Time với 8Byte nhé.

Còn bạn đó khai báo thì lôi nó trong vùng nhớ LB28 và truy xuất heng bạn.

Thân chào.

chuhop
02-12-2014, 05:02 PM
cho e hỏi là (Instance DB) và (Data-Block DB)
chức năng của 2 thằng này là như thế nào vậy ah.e chưa rõ về 2 DB này.Thanks!!!!!!

chuhop
02-12-2014, 05:06 PM
13421343
và thêm 2 hình này nữa ah.
e thấy có những DB phục vụ cho FB,và vcó những DB phục vụ cho FC .
có những DB không phục vụ cho FC/FB nào cả.

tran_hieu0983
02-14-2014, 01:49 PM
Instance DB là DB của riêng FB và chỉ trỏ vào 1 FB nhé.

Còn Share DB hay còn gọi là Global DB thì nó xài giống như là M. Xài với biến toàn cục, có thể gọi và khai báo theo user... Thế thôi

chuhop
02-14-2014, 04:45 PM
như trong hình e up,thì e thấy có Instance DB.Nhưng ma no không phục vụ cho FC/FB nào cả.
thì caiis Instance DB đó có tác dụng j ah?
Thanks a Hiếu nhìu ah.!!

Instance DB là DB của riêng FB và chỉ trỏ vào 1 FB nhé.

Còn Share DB hay còn gọi là Global DB thì nó xài giống như là M. Xài với biến toàn cục, có thể gọi và khai báo theo user... Thế thôi

tran_hieu0983
02-16-2014, 08:43 AM
như trong hình e up,thì e thấy có Instance DB.Nhưng ma no không phục vụ cho FC/FB nào cả.
thì caiis Instance DB đó có tác dụng j ah?
Thanks a Hiếu nhìu ah.!!

Nói rồi thôi đó bạn

Instance DB là DB của riêng FB và chỉ trỏ vào 1 FB nhé.

Nó là để lưu trữ dữ liệu cho FB. Thế thôi :)