Mình có viết cho bạn hàm tách 1 số real ra 2 số dint, mình chỉ lấy 1 số lẻ.(vd: 8.51 mình sẽ lấy ra 8 và 5)
SET
R #OVERLIMIT
L #IN_DATA //load data vào, dữ liệu sau khi ra fc105
PUSH
TRUNC
JO FLT
T #TEMP_DATA
T #OUT_DATA //out phần nguyên
DTR
-R
T #TEMP_DATA_TRUNC
L 1.000000e+001
*R
TRUNC
T #OUT_DATA1 //out phần thập phân
SAVE
BEU
FLT: S #OVERLIMIT
CLR
SAVE
Để mình nói thuật toán cho bạn dễ hiểu: Mình lấy data vào (real), dùng truncate để lấy phần nguyên. Sau đó lấy số real dầu vào trừ giá trị truncate để lấy phần thập phân. Next, lấy hiệu số nhân 10 và truncate lần nữ sẽ lấy dc phần lẻ sau dấu thập phân. Với cách viết này sẽ có 1 số trường hợp bị sai lêch giá trị 0.1,
nhưng k ảnh hưởng lắm, bạn suy nghĩ và cải thiện chương trình nha
Lần sửa cuối bởi Mechatronic_Hieu, ngày 01-03-2013 lúc 09:25 AM.
Nhận hợp tác lập trình các loại PLC và xử lý sự cố về hệ thống tự động hóa
Gm: Hidden Content
Mình đi công tác ở xa k có internet nên h mới vào được diễn đàn, cảm ơn bạn nhiều nhé
Xin lỗi bạn, tôi không nghĩ tôi dùng "đề nghị", "cảm ơn bạn nhiều" có nghĩa là ra lệnh. Take it easy! Dù sao cũng xin tiếp thu và rút kinh nghiệm ạ!
Tôi nhờ chủ topic chỉ dẫn là vì link tài liệu : http://plcvietnam.com.vn/showthread....3%A2m-C%C4%90T
không vào được
Lần sửa cuối bởi van8x10, ngày 02-05-2013 lúc 04:56 PM.
Đánh dấu