This is the MCQs in Analog Transmission from the book Data Communications and Networking 4th Edition by Behrouz A. Forouzan. More: http://www.pinoybix.org/
Full description
analog
formula for gateFull description
ANALOG COMMUNICATION NOTES VTU 5th SEMESTER
Analog Communication
Analog CommunicationFull description
Puma elektrik analog meterFull description
Rangkaian Elektronika Analog
sDeskripsi lengkap
Very Useful for Analog Electronics Lab
1. Tín hiệu Analog input Lưu ý: Ở đây mình viết cho S7-300/400 nhưng v ới S7-200/1200/1500 S7-200/1200/1500 cũng làm tương tự nhé The SCALE function takes an integer value (IN) and converts it to a real value in engineering units scaled between a low and a high limit (LO_LIM and HI_LIM). The result is written in OUT. The SCALE function uses the equation: OUT = [ ((FLOAT (IN) – K1)/(K2 K1)/(K2– –K1)) * (HI_LIM– (HI_LIM–LO_LIM)] + LO_LIM The constants K1 and K2 are set based upon whether the input value is BIPOLAR or UNIPOLAR. ·BIPOLAR: The input integer value is assumed to be between –27648 and 27648, therefore, t herefore, K1 = –27648.0 and K2 = +27648.0 ·UNIPOLAR: The input integer value is assumed to be between 0 and 27648, therefore, K1 = 0.0 and K2 = +27648.0 If the input integer value is greater than K2, the output (OUT) is clamped to HI_LIM, and an error is returned. If the input integer int eger value is less than K1, the output is clamped to LO_LIM, and an error is returned. Reverse scaling can be obtained by programming LO_LIM > HI_LIM. With reverse s caling, the value of the output decreases as the value of o f the input increases.
Điều đ ặc biệt mình muốn các bạn chú ý là ph ần tô đ ậm màu xanh trong hàm trên. Đây chính là công thức mà Siemens áp d ụng cho mọi module đ ể đ ọc tín hiệu analoge của mình. Nếu như tín hiệu vào có đ ảo cực ví dụ từ -10V 10V đ ến +10V ... thì set bipolar b ằng 1 (tức là cho m ột bit nào đó bằng 1 rồi gán cho đ ầu vào này c ủa FC105 là xong. Ở đây có cái h ằng số K1, K2 là hằng số maximum mà module analog c ủa Siemens có th ể xử lý nên người ta đã vi đã viết cho dạng maximum. Như v ậ y chương trình có s ẵn của Siemens không ph ải lúc nào cũng t ối ưu cho nên tất cả các chương trình của mình v ề tính toán Analog vì đ ộ phân giải của module không giống nhau và ược có thể có những ứng dụng không cẩn Scale K1,2 là 27648 do v ậ y mình đ ầu viết lại đ ể đ ượ tối ưu hơn. Mời các bạn tham kh ảo chương trình sau nhé. ượ ợc viế t bởi Admin c ủa vocsy" "Chương trình tối ưu hóa cho tính toán Analog đ ư
Ở đây thay thế công thức của Siemens bằng công thức: Out=((Raw-Raw_Min)*(Scale_Max-Scale_Min))/(Raw_Max-Raw_Min) Out=((Raw-Raw_Min)*(Scale_Max-Scale_Min))/( Raw_Max-Raw_Min) + Raw_Min
Ở đây ta có: Raw: là giá tr ị đ ọc đ ượ ược từ đ ầu vào Input module
Raw_Max: là giá trị lớn nhất module có th ể đ ọc đ ược hoặc là mình muốn cho nó đ ọc. (Ở trên Siemens nói là từ nhỏ hơn 27648 đó, chính là giá tr ị lớn nhất mà module analog có thể xử lý đ ược). Raw_Min: Là giá tr ị nhỏ nhất mà module có thể đ ọc. Scale_Max: Chính là giá tr ị lớn nhất mà mình mong mu ốn thực tế hay chính là giá tr ị Engineering đó. Chẳng hạn đây là fias tr ị nhiệt đ ộ, áp su ất thực tế .... Scalmin: là giá tr ị engineering nhỏ nhất. Chương trình được vi ết dưới dạng chương trình con để thuận tiện dùng: // Convert from interger to Real L #Raw ITD DTR T #_Raw_R L #Raw_Min ITD DTR T #_Raw_Min_R L #Raw_Max ITD DTR T #_Raw_Max_R // Calculation // Raw - Raw_Min L #_Raw_R L #_Raw_Min_R -R T #_temp_real
// Scale_Max - Scale_Min L #Scale_Max L #Scale_Min -R //(Raw - Raw_Min) * (Scale_Max - Scale_Min) L #_temp_real *R T #_temp_real
// Raw_Max - Raw_Min L #_Raw_Max_R L #_Raw_Min_R -R T #_temp_real2 //(Raw - Raw_Min) * (Scale_Max - Scale_Min) / (Raw_Max - Raw_Min) L #_temp_real L #_temp_real2 /R //(Raw - Raw_Min) * (Scale_Max - Scale_Min) / (Raw_Max - Raw_Min) + Scale_Min L #Scale_Min +R T #_Output
2. Tín hiệu Analoge output Ngược lại v ới module input (module analog input là mã hóa c ủa dãy số nguyên integer maximum 27648 từ tín hiệu analog đ ầu vào) thì ngược lại, Đầu ra của module analog lai là tín hiệu analog từ dãy s ố integer maximum 27648. Như trên mình cũng đã nói, trong thư viện của Siemens cũng đã có s ẵn hàm này r ồi và các bạn chỉ cần lôi nó ra xài, đó là hàm FC106. N ếu không có gì l ớn thì chịu khó đ ọc help c ủa Siemens là làm đ ược. ở đây mình cũng chép nguyên cái h ướng dẫn của Siemens cho các b ạn tham khảo The UNSCALE function takes a real input value (IN) in engineering units scaled between a low and a high limit (LO_LIM and HI_LIM) and converts it to an integer value. The result is written to OUT. The UNSCALE function uses the equation: OUT = [ ((IN–LO_LIM)/(HI_LIM–LO_LIM)) * (K2–K1) ] + K1 and sets the constants K1 and K2 based upon whether the input value is BIPOLAR or UNIPOLAR. ·BIPOLAR: The output integer value is assumed to be between –27648 and 27648, therefore, K1 = –27648.0 and K2 = +27648.0 ·UNIPOLAR: The output integer value is assumed to be between 0 and 27648, therefore, K1 = 0.0 and K2 = +27648.0 If the input value is outside the LO_LIM and HI_LIM range, the output (OUT) is clamped to the nearer of either the low limit or the high limit of the specified range for its type (BIPOLAR or UNIPOLAR) and an error is returned.
Thực ra đây cũng chính là công th ức biến đ ổi ngược của công thức tình giá tr ị của analog input mà thôi. Th ế nhưng mình đã nói, các b ạn nên tạo một chương trình tối ưu cho ứng dụng của mình và sau đây mình cũng gi ới thiệu v ới các b ạn chương trình của admin vocsy dành cho các b ạn tham kh ảo. Ta cũng áp d ụng công thức Out=((Raw-Raw_Min)*(Scale_Max-Scale_Min))/(Raw_Max-Raw_Min) + Raw_Min L #Scale_Min ITD DTR T #_Scale_Min_R L #Scale_Max ITD DTR T #_Scale_Max_R L #Raw L #Raw_Min -R T #_temp_real // Scale_Max - Scale_Min L #_Scale_Max_R L #_Scale_Min_R -R //(Raw - Raw_Min) * (Scale_Max - Scale_Min) L #_temp_real *R T #_temp_real // Raw_Max - Raw_Min L #Raw_Max L #Raw_Min -R T #_temp_real2 //(Raw - Raw_Min) * (Scale_Max - Scale_Min) / (Raw_Max - Raw_Min) L #_temp_real L #_temp_real2 /R //(Raw - Raw_Min) * (Scale_Max - Scale_Min) / (Raw_Max - Raw_Min) + Scale_Min L #_Scale_Min_R +R T #_Output //Convert scaled output to integer L #_Scaled_R RND T #Scaled