Bit Logic Operations

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 26

Bit logic operations

• —| |—: Normally open contact (S7-1200, S7-1500)

• —| / |—: Normally closed contact (S7-1200, S7-1500)

• –|NOT|–: Invert RLO (S7-1200, S7-1500)

• —( )—: Assignment (S7-1200, S7-1500)

• –( / )–: Negate assignment (S7-1200, S7-1500)

• —( R )—: Reset output (S7-1200, S7-1500)

• —( S )—: Set output (S7-1200, S7-1500)

• SET_BF: Set bit field (S7-1200, S7-1500)

• RESET_BF: Reset bit field (S7-1200, S7-1500)

• SR: Set/reset flip-flop (S7-1200, S7-1500)

• RS: Reset/set flip-flop (S7-1200, S7-1500)

• –|P|–: Scan operand for positive signal edge (S7-1200, S7-1500)

• –|N|–: Scan operand for negative signal edge (S7-1200, S7-1500)

• –(P)–: Set operand on positive signal edge (S7-1200, S7-1500)

• –(N)–: Set operand on negative signal edge (S7-1200, S7-1500)

• P_TRIG: Scan RLO for positive signal edge (S7-1200, S7-1500)

• N_TRIG: Scan RLO for negative signal edge (S7-1200, S7-1500)

• R_TRIG: Detect positive signal edge (S7-1200, S7-1500)

• F_TRIG: Detect negative signal edge (S7-1200, S7-1500)


Timer operations
• TP: Generate pulse (S7-1200, S7-1500)

• TON: Generate on-delay (S7-1200, S7-1500)

• TOF: Generate off-delay (S7-1200, S7-1500)

• TONR: Time accumulator (S7-1200, S7-1500)

• —( TP )—: Start pulse timer (S7-1200, S7-1500)

• —( TON )—: Start on-delay timer (S7-1200, S7-1500)

• —( TOF )—: Start off-delay timer (S7-1200, S7-1500)

• —( TONR )—: Time accumulator (S7-1200, S7-1500)

• —( RT )—: Reset timer (S7-1200, S7-1500)

• —( PT )—: Load time duration (S7-1200, S7-1500)

Counter operations
• CTU: Count up (S7-1200, S7-1500)

• CTD: Count down (S7-1200, S7-1500)

• CTUD: Count up and down (S7-1200, S7-1500)

Comparator operations
• CMP ==: Equal (S7-1200, S7-1500)

• CMP <>: Not equal (S7-1200, S7-1500)

• CMP >=: Greater or equal (S7-1200, S7-1500)

• CMP <=: Less or equal (S7-1200, S7-1500)


• CMP >: Greater than (S7-1200, S7-1500)

• CMP <: Less than (S7-1200, S7-1500)

• IN_RANGE: Value within range (S7-1200, S7-1500)

• OUT_RANGE: Value outside range (S7-1200, S7-1500)

• —-I OK I—-: Check validity (S7-1200, S7-1500)

• —-I NOT_OK I—-: Check invalidity (S7-1200, S7-1500)

• VARIANT (S7-1200, S7-1500)

Math functions
• CALCULATE: Calculate (S7-1200, S7-1500)

• ADD: Add (S7-1200, S7-1500)

• SUB: Subtract (S7-1200, S7-1500)

• MUL: Multiply (S7-1200, S7-1500)

• DIV: Divide (S7-1200, S7-1500)

• MOD: Return remainder of division (S7-1200, S7-1500)

• NEG: Create twos complement (S7-1200, S7-1500)

• INC: Increment (S7-1200, S7-1500)

• DEC: Decrement (S7-1200, S7-1500)

• ABS: Form absolute value (S7-1200, S7-1500)

• MIN: Get minimum (S7-1200, S7-1500)

• MAX: Get maximum (S7-1200, S7-1500)


• LIMIT: Set limit value (S7-1200, S7-1500)

• SQR: Form square (S7-1200, S7-1500)

• SQRT: Form square root (S7-1200, S7-1500)

• LN: Form natural logarithm (S7-1200, S7-1500)

• EXP: Form exponential value (S7-1200, S7-1500)

• SIN: Form sine value (S7-1200, S7-1500)

• COS: Form cosine value (S7-1200, S7-1500)

• TAN: Form tangent value (S7-1200, S7-1500)

• ASIN: Form arcsine value (S7-1200, S7-1500)

• ACOS: Form arccosine value (S7-1200, S7-1500)

• ATAN: Form arctangent value (S7-1200, S7-1500)

• FRAC: Return fraction (S7-1200, S7-1500)

• EXPT: Exponentiate (S7-1200, S7-1500)

Move operations
• MOVE: Move value (S7-1200, S7-1500)

• Deserialize: Deserialize (S7-1200, S7-1500)

• Serialize: Serialize (S7-1200, S7-1500)

• MOVE_BLK: Move block (S7-1200, S7-1500)

• MOVE_BLK_VARIANT: Move block (S7-1200, S7-1500)

• UMOVE_BLK: Move block uninterruptible (S7-1200, S7-1500)


• FILL_BLK: Fill block (S7-1200, S7-1500)

• UFILL_BLK: Fill block uninterruptible (S7-1200, S7-1500)

• SCATTER: Parse the bit sequence into individual bits (S7-1200, S7-1500)

• SCATTER_BLK: Parse elements of an ARRAY of bit sequence into individual


bits (S7-1200, S7-1500)

• GATHER: Merge individual bits into a bit sequence (S7-1200, S7-1500)

• GATHER_BLK: Merge individual bits into multiple elements of an ARRAY of


bit sequence (S7-1200, S7-1500)

• AssignmentAttempt: Attempt assignment of a VARIANT to a reference (S7-


1500)

• SWAP: Swap (S7-1200, S7-1500)

• ARRAY DB (S7-1500)

• VARIANT (S7-1200, S7-1500)

• ARRAY[*] (S7-1200, S7-1500)

Conversion operations
• CONVERT: Convert value (S7-1200, S7-1500)

• ROUND: Round numerical value (S7-1200, S7-1500)

• CEIL: Generate next higher integer from floating-point number (S7-1200, S7-
1500)

• FLOOR: Generate next lower integer from floating-point number (S7-1200, S7-
1500)

• TRUNC: Truncate numerical value (S7-1200, S7-1500)

• SCALE_X: Scale (S7-1200, S7-1500)


• NORM_X: Normalize (S7-1200, S7-1500)

Program control operations


• —( JMP ): Jump if RLO = 1 (S7-1200, S7-1500)

• —( JMPN ): Jump if RLO = 0 (S7-1200, S7-1500)

• LABEL: Jump label (S7-1200, S7-1500)

• JMP_LIST: Define jump list (S7-1200, S7-1500)

• SWITCH: Jump distributor (S7-1200, S7-1500)

• –(RET): Return (S7-1200, S7-1500)

• Runtime control (S7-1200, S7-1500)

Word logic operations


• AND: AND logic operation (S7-1200, S7-1500)

• OR: OR logic operation (S7-1200, S7-1500)

• XOR: EXCLUSIVE OR logic operation (S7-1200, S7-1500)

• INVERT: Create ones complement (S7-1200, S7-1500)

• DECO: Decode (S7-1200, S7-1500)

• ENCO: Encode (S7-1200, S7-1500)

• SEL: Select (S7-1200, S7-1500)

• MUX: Multiplex (S7-1200, S7-1500)

• DEMUX: Demultiplex (S7-1200, S7-1500)

Shift and rotate


• SHR: Shift right (S7-1200, S7-1500)

• SHL: Shift left (S7-1200, S7-1500)

• ROR: Rotate right (S7-1200, S7-1500)

• ROL: Rotate left (S7-1200, S7-1500)

Date and time-of-day


• T_COMP: Compare time tags (S7-1500)

• T_CONV: Convert times and extract (S7-1200, S7-1500)

• T_ADD: Add times (S7-1200, S7-1500)

• T_SUB: Subtract times (S7-1200, S7-1500)

• T_DIFF: Time difference (S7-1200, S7-1500)

• T_COMBINE: Combine times (S7-1200, S7-1500)

• Time-of-day functions (S7-1200, S7-1500)

String + Char
• S_MOVE: Move character string (S7-1200, S7-1500)

• S_COMP: Compare character strings (S7-1500)

• S_CONV: Convert character string (S7-1200, S7-1500)

• STRG_VAL: Convert character string to numerical value (S7-1200, S7-1500)

• VAL_STRG: Convert numerical value to character string (S7-1200, S7-1500)

• Strg_TO_Chars: Convert character string to Array of CHAR (S7-1200, S7-


1500)
• Chars_TO_Strg: Convert Array of CHAR to character string (S7-1200, S7-
1500)

• MAX_LEN: Determine the length of a character string (S7-1200, S7-1500)

• JOIN: Join multiple strings (S7-1500)

• SPLIT: Splitting an array of characters into multiple strings (S7-1500)

• ATH: Convert ASCII string to hexadecimal number (S7-1200, S7-1500)

• HTA: Convert hexadecimal number to ASCII string (S7-1200, S7-1500)

• LEN: Determine the length of a character string (S7-1200, S7-1500)

• CONCAT: Combine character strings (S7-1200, S7-1500)

• LEFT: Read the left character of a character string (S7-1200, S7-1500)

• RIGHT: Read the right characters of a character string (S7-1200, S7-1500)

• MID: Read middle characters of a character string (S7-1200, S7-1500)

• DELETE: Delete characters in a character string (S7-1200, S7-1500)

• INSERT: Insert characters in a character string (S7-1200, S7-1500)

• REPLACE: Replace characters in a character string (S7-1200, S7-1500)

• FIND: Find characters in a character string (S7-1200, S7-1500)

• Runtime information (S7-1200, S7-1500)

Distributed I/O
• Overview of the types of data records (S7-1200, S7-1500)

• RDREC: Read data record (S7-1200, S7-1500)

• WRREC: Write data record (S7-1200, S7-1500)


• GETIO: Read process image (S7-1200, S7-1500)

• SETIO: Transfer process image (S7-1200, S7-1500)

• Program example for GETIO & SETIO (S7-1200, S7-1500)

• GETIO_PART: Read process image area (S7-1200, S7-1500)

• SETIO_PART: Transfer process image area (S7-1200, S7-1500)

• Program example for GETIO_PART & SETIO_PART (S7-1200, S7-1500)

• RALRM: Receive interrupt (S7-1200, S7-1500)

• D_ACT_DP: Enable/disable DP slaves (S7-1200, S7-1500)

• ReconfigIOSystem: Reconfigure IO system (S7-1200, S7-1500)

• Others (S7-1200, S7-1500)

PROFIenergy
• Description of PROFIenergy (S7-1200, S7-1500)

• IO controller (S7-1200, S7-1500)

• iDevice / iSlave (S7-1200, S7-1500)

Interrupts
• ATTACH: Attach an OB to an interrupt event (S7-1200, S7-1500)

• DETACH: Detach an OB from an interrupt event (S7-1200, S7-1500)

• Cyclic interrupt (S7-1200, S7-1500)

• Time-of-day interrupt (S7-1200, S7-1500)

• Time-delay interrupt (S7-1200, S7-1500)


• Asynchronous error event (S7-1200, S7-1500)

Alarms
• Gen_UsrMsg: Generate user diagnostic alarms (S7-1200, S7-1500)

• Program example for Get_Alarm & Ack_Alarms (S7-1200, S7-1500)

Diagnostics
• RD_SINFO: Read current OB start information (S7-1200, S7-1500)

• RT_INFO: Read out runtime statistics (S7-1500)

• LED: Read LED status (S7-1200, S7-1500)

• Get_IM_Data: Reading identification and maintenance data (S7-1200, S7-


1500)

• GET_NAME: Read out name of an IO device or a DP slave (S7-1200, S7-1500)

• GetStationInfo: Read information of an IO device (S7-1200, S7-1500)

• GetChecksum: Read out checksum (S7-1200, S7-1500)

• GetSMCinfo: Reading out information about the SIMATIC memory card (S7-
1500)

• GetClockStatus: Read out status of the CPU clock (S7-1500)

• DeviceStates: Read module status information in an IO system (S7-1200, S7-


1500)

• ModuleStates: Read module status information of a module (S7-1200, S7-


1500)

• GEN_DIAG: Generate diagnostics information (S7-1500)

• GET_DIAG: Read diagnostic information (S7-1200, S7-1500)


Pulse
• CTRL_PWM: Pulse-width modulation (S7-1200)

• CTRL_PTO: Output a pulse sequence with a preset frequency (S7-1200)

Recipes and data logging


• Recipe functions (S7-1200, S7-1500)

• Data logging (S7-1200, S7-1500)

Data block functions


• CREATE_DB: Create data block (S7-1200, S7-1500)

• READ_DBL: Read from data block in the load memory (S7-1200, S7-1500)

• WRIT_DBL: Write to data block in the load memory (S7-1200, S7-1500)

• ATTR_DB: Read data block attribute (S7-1200, S7-1500)

• DELETE_DB: Delete data block (S7-1200, S7-1500)

• Program example for CREATE functions (S7-1200, S7-1500)

Addressing
• Instructions for address conversion (S7-1200, S7-1500)

• GEO2LOG: Determine hardware identifier from slot (S7-1200, S7-1500)

• LOG2GEO: Determine slot from hardware identifier (S7-1200, S7-1500)

• LOG2MOD: Determine the hardware identifier from addressing of STEP 7


V5.5 SPx (S7-1500)

• IO2MOD: Determine hardware identifier from an IO address (S7-1200, S7-


1500)
• RD_ADDR: Determine IO addresses from the hardware identifier (S7-1200, S7-
1500)

• System data type GEOADDR (S7-1200, S7-1500)

• Legacy (S7-1200, S7-1500)

Motion Control
S7-1200 Motion Control (S7-1200)

High-speed counters
CTRL_HSC: Control high-speed counters (S7-1200)

PID Control
• PID_Compact (S7-1200, S7-1500)

• PID_3Step (S7-1200, S7-1500)

• PID_Temp (S7-1200, S7-1500)

• PID basic functions (S7-1500)

• Polyline (S7-1200, S7-1500)

• SplitRange (S7-1200, S7-1500)

• RampFunction (S7-1200, S7-1500)

Communication
• S7 communication (S7-1200, S7-1500)

• Open User Communication (S7-1200, S7-1500)

• OPC UA (S7-1500)

• Web server (S7-1200, S7-1500)


• Communications processor (S7-1200, S7-1500)

• TeleService (S7-1200)

Hướng dẫn lệnh lập trình timer định thời plc


siemens s7-1200
Bài viết này thuộc khóa học lập trình plc Siemens online miễn phí của abientan,
mời các bạn tham khảo chi tiết tại:

khóa học lập trình plc siemens s7-1200 online miễn phí

Tìm hiểu cơ bản về timer định thời trên plc


siemens s7-1200
Trong quá trình lập trình plc siemens s7-1200 chạy cho máy móc thực tế
thường đòi hỏi chúng ta phải xử lý thao tác liên quan tới thời gian như delay tín
hiệu hoặc out ngõ ra. Vì vậy mà ta cần phải năm về cách sử dụng timer định
thời khi viết code cho plc siemens s7-1200, mời các bạn cùng abientan tìm
hiểu qua bài viết sau đây.

Ví dụ tiêu biểu nhất trong quá trình lập trình plc bắt buộc chúng ta phải sử
dụng timer đó chính là bài toán lập trình cột đèn giao thông xanh đỏ vàng.
Người viết chương trình plc bắt buộc phải dùng timer định thời để lập trình
đúng thời gian bật và tắt lần lượt đèn xanh đỏ vàng.

Các loại timer định thời trên plc siemens s7-


1200 và cách sử dụng
Timer nhận xung cạnh lên trên plc siemens s7-1200
Timer nhận xung cạnh lênh trên plc siemens s7-1200

 Chức năng khi ngõ vào timer có xung cạnh lên thì ngõ ra Q của timer
này sẽ out ra trong 1 khoảng thời gian cài đặt ở giá trị PT. Còn ET là
thời gian của bộ đếm.
 Theo như ví dụ trên khi M0.0 chuyển từ 0=>1 thì Q0.0 sẽ ON trong
10,000ms sau đó tự tắt.

Timer on delay trên plc siemens s7-1200

Timer On delay trên plc siemens s7-1200

 Chức năng khi ngõ vào IN lên 1 thì ngõ ra Q sẽ delay một khoảng thời
gian cài đặt ở PT sau đó lên 1, khi ngõ vào IN xuống 0 thì ngõ ra Q lập
tức xuống 0.
 Ví dụ như hình trên thì khi M0.0 từ 0=>1 thì timer sẽ đếm cho đủ 10s
sau đó bật Q0.0 lên 1.
Timer off delay trên plc siemens s7-1200

Timer off delay trên plc siemens s7-1200

 Chức năng khi ngõ vào IN chuyển từ 1=>0 thì timer sẽ đếm sau
khoảng thời gian cài đặt ở PT thì sẽ chuyển Q từ 1=>0. Còn nếu ngõ
vào từ 0=>1 thì ngõ ra Q chuyển lập tức từ 0=>1
 Như ví dụ trên khi M0.00 từ 1=>1 thì sau 10s Q0.0 sẽ từ 1=>0

Timer on delay có nhớ trên plc siemens s7-1200

Timer on delay có nhớ trên plc siemens s7-1200

 Chức năng: tương tự như timer on delay tuy nhiên khi ngõ IN chuyển
xuống 0 thì giá trị timer vẫn giữ và khi IN lên 1 thì tiếp tục đếm từ giá
trị này. Lệnh này có thêm ngõ vào R để reset timer.
 Mô tả ví dụ: khi M0.0 chuyển từ 0=>1 thì timer bắt đầu đếm cho đủ
10s sau đó ON Q0.0. Nếu trong quá trình chưa đủ 10s mà M0.0 bị
chuyển về 0 thì giá trị timer lưu lại và để lần sau đếm tiếp.
Lưu ý: khi sử dụng timer các bạn cần phải tham khảo giới hạn bộ nhớ trong
từng cpu để không sử dụng quá giới hạn bộ nhớ timer.

Khi viết chương trình cho plc siemens s7-1200 có nhiều trường hợp ta cần
đếm số lượng một thao tác nào đó từ cảm biến bên ngoài hoặc bit phụ trên plc
thì thường ta phải sử dụng đến khối hàm chức năng có tên gọi là counter hay
bộ đếm do hãng tích hợp sẵn trong tập lệnh của CPU.

Trên plc siemens s7-1200 có sẵn 3 lệnh counter bộ đếm với sự khác nhau như
tên gọi của chúng là counter đếm lên, counter đếm xuống, counter vừa đếm
lên, vừa đếm xuống.

Lưu ý: đây là counter bộ đếm thường nên tốc độ đếm xung đầu vào khá thấp
nên chỉ đếm những tín hiệu ngõ vào có tốc độ thấp, nếu cấp xung tốc độ cao
vào bộ đếm này sẽ không còn chính xác. Để đếm các tín hiệu xung tốc độ cao
thì các bạn tham khảo bài tiếp theo trong khóa học này về HSC.

Mô tả chi tiết lệnh counter bộ đếm trên plc siemens


s7-1200
Lệnh counter đếm lên trên plc siemens s7-1200

Lệnh counter đếm lên trên plc siemens s7-1200


Mô tả chi tiết lệnh counter đếm lên trên plc siemens s7-1200:
 CU là ngõ vào của bộ đếm có thể là dữ liệu dạng bit bất kỳ, counter sẽ
đếm lên khi tín hiệu ngõ vào chuyển từ 0=>1

 R là ngõ vào để reset bộ đếm.


 PV là giá trị cài đặt của bộ đếm.
 Q là tín hiệu ngõ ra của bộ đếm khi đếm lên tới giá trị PV thì ngõ ra
này sẽ kích hoạt lên 1.
 CV là giá trị hiện tại của bộ đếm.
Lệnh counter đếm xuống trên plc siemens s7-1200

Lệnh counter đếm xuống trên plc siemens s7-1200


Mô tả chi tiết lệnh counter đếm xuống trên plc siemens s7-1200

 CD là ngõ vào tín hiệu, counter sẽ đếm xuống khi tín hiệu này từ 0=>1
 LD là bit reset bộ đếm, khi bit này từ 0=>1 thì giá trị của bộ đếm sẽ bị
chuyển về giá trị PV
 PV là giá trị cài đặt của bộ đếm
 Q là ngõ ra của bộ đếm khi đếm về giá trị 0 sẽ out ra 1.
 CV là giá trị hiện tại của bộ đếm.
Lệnh counter đếm lên và xuống trên plc siemens s7-1200
Lệnh counter đếm lên xuống trên plc siemens s7-1200
Mô tả chi tiết lệnh đếm lên xuống trên plc siemens s7-1200

 CU là ngõ vào đếm lên


 CD là ngõ vào đếm xuống
 R là chân reset khi chân này chuyển từ 0=>1 thì giá trị bộ đếm về 0.
 LD là chân reset về giá trị PV
 QU on lên 1 khi giá trị đếm bằng giá trị PV
 QD on lên 1 khi giá trị đếm =0
 CV là giá trị hiện tại của bộ đếm.

Tìm hiểu cơ bản về lệnh so sánh trên plc siemens s7-


1200
Cú pháp lệnh so sánh trên plc siemens s7-1200

 = ngõ ra được kích hoạt nếu IN1=IN2


 <> ngõ ra được kích hoạt nếu IN1#IN2
 >= ngõ ra được kích hoạt nếu IN1 lớn hơn hoặc bằng IN2
 <= ngõ ra được kích hoạt nếu IN1 nhỏ hơn hoặc bằng IN2
 > ngõ ra được kích hoạt nếu IN1 lớn hơn IN2
 < ngõ ra được kích hoạt nếu IN1 nhỏ hơn IN2
Vùng dữ liệu thực hiện lệnh so sánh trên plc siemens s7-1200
Lệnh so sánh được thực hiện trên vùng nhớ bao gồm: SInt, Int, DInt, USInt, UInt,
UDInt, Real, LReal, String, Char, Time, DTL, Constan

Ví dụ về lệnh so sánh trên plc siemens s7-1200


dụ lệnh so sánh trên plc siemens s7-1200
Một số lệnh so sánh khác trên plc siemens s7-12000
Lệnh so sánh trong khoảng giá trị trên plc siemens s7-1200

Lệnh so sánh trong khoảng giá trị plc siemens s7-1200


Mô tả: nếu giá trị ở VAL nằm trong khoảng từ MIN tới MAX thì ngõ ra sẽ có tác
động lên 1.

Lệnh so sánh ngoài khoảng giá trị trên plc siemens s7-1200
L
ệnh so sánh ngoài khoảng giá trị trên plc siemens s7-1200
Mô tả: nếu giá trị ở VAL nằm ngoài khoảng giá trị MIN-MAX thì giá trị ngõ ra sẽ
được lên 1.

Lệnh lập trình di chuyển copy bit thanh ghi plc


siemens s7-1200
Bài viết này thuộc khóa học lập trình plc Siemens online miễn phí của abientan,
mời các bạn tham khảo chi tiết tại:

khóa học lập trình plc siemens s7-1200 online miễn phí

Trong bài viết này mình sẽ chia sẻ cho các bạn một số lệnh lập trình plc
siemens 27-1200 có tác dụng để di chuyển hay sao chép dữ liệu bit thanh ghi,
mời các bạn tham khảo chi tiết như sau.

Lệnh sao chép thanh ghi trên plc siemens s7-


1200
Lệnh sao chép dữ liệu thanh ghi của plc siemens s7-1200 là một trong những
lệnh phổ biến và thường được sử dụng nhiều trong quá trình lập trình.
Lệ
nh sao chép thanh ghi trên plc siemenss s7-1200
Cấu trúc của lệnh bao gồm 3 đầu vào như sau:

 EN là để kích hoạt lên


 IN là địa chỉ thanh ghi có giá trị cần sao chép
 OUT1 là địa chỉ thanh ghi lưu giá trị cần sao chép.
Như trong hình ví dụ thì khi EN lên 1 thì plc sẽ thực hiện sao chép giá trị của ô
nhớ MD10 vào ô nhớ MD20

Lưu ý kiểu dữ liệu của IN và OUT1 nên sử dụng cùng 1 kiểu với nhau để tránh
lỗi, nếu khác kiểu dữ liệu bạn có thể gặp phải lỗi như sau:

L
ệnh sao chép dữ liệu trên plc siemens s7-1200
Như ví dụ trên hình nếu IN là 1 Dword trong khi OUT1 là Word thì lệnh MOVE
chỉ có tác dụng sao chép được word thấp của ô nhớ mà thôi. Như bạn thấy
trong ví dụ phias trên lệnh MOVE chỉ sao chép được Word thấp có giá trị 3456
mà thôi.

Vùng nhớ mà lệnh MOVE có thể tác động ba gồm: SInt, Int, DInt, USInt, UInt,
UDInt, Real, LReal, Byte, Word, DWord, Char, Array, Struct, DTL, Time.
Một số lệnh di chuyển sao chép dữ liệu khác
trên plc siemens s7-1200
 Lệnh MOVE_BLK lệnh sao chép khối dữ liệu
 Lệnh UMOVE_BLK: di chuyển khối dữ liệu vào địa chỉ mới.
Lưu ý hai lệnh này áp dụng cho kiểu dữ liệu Array

Đối với plc siemens hiện chưa hỗ trợ lệnh sao chép hay di chuyển dữ liệu dạng
bit nên bạn có thể sử dụng một số lệnh như R S SET_BF RESET_BF hoặc out
relay để xử lý trong quá trình lập trình với dữ liệu dạng bit

Lệnh lập trình tính toán số học trên plc siemens


s7-1200
Bài viết này thuộc khóa học lập trình plc Siemens online miễn phí của abientan,
mời các bạn tham khảo chi tiết tại:

khóa học lập trình plc siemens s7-1200 online miễn phí

Trong quá trình lập trình code cho plc siemens s7-1200 ta bắt buộc phải sử
dụng một số lệnh lập trình tính toán liên quan tới số học, mời các bạn tham
khảo chi tiết tập lệnh qua bài viết sau đây.

Lệnh phép toán cộng trên plc siemens s7-1200

Lệ
nh phép toán cộng trên plc siemens s7-1200
Mô tả chi tiết lệnh phép toán cộng trên plc siemens s7-1200
 EN ngõ vào kích hoạt để thực hiện lệnh
 IN1 toán tử cộng 1
 IN2 là toán tử cộng 2
 OUT là kết quả
 Toán tử cộng có thể sử dụng trên vùng nhớ : SInt, Int, DInt, USInt, UInt,
UDInt, Real, LReal, hằng số.
 Kết quả có thể sử dụng trên vùng nhớ: SInt, Int, DInt, USInt, UInt, UDInt,
Real, LReal
=> Mô tả ví dụ: lệnh ADD như trên hình sẽ thực hiện phép tính cộng 2 giá trị lưu
ở ô nhớ MD1 và MD5 sau đó lưu kết quả vào ô nhớ có địa chỉ là MD9.

Lệnh phép toán trừ trên plc siemens s7-1200

Lệnh
phép toán trừ trên plc siemens s7-1200
Mô tả chi tiết lệnh phép toán trừ trên plc siemens s7-1200

 EN là ngõ vào kích hoạt để thực hiện lệnh


 IN1 là số bị trừ
 IN2 là số trừ
 OUT là kết quả của phép toán IN1-IN2=OUT
 Số bị trừ và số trừ có thể sử dụng trên vùng nhớ: SInt, Int, DInt, USInt,
UInt, UDInt, Real, LReal, hằng số.
 Kết quả có thể sử dụng vùng nhớ: SInt, Int, DInt, USInt, UInt, UDInt,
Real, LReal
 Lưu ý: khi thực hiện phép trừ kết quả có thể bị âm và số hiển thị
monitor trên phần mềm TIA Portal là dạng số âm, nên các bạn cần
tìm hiểu thêm về kiểu dữ liệu hiển thị số âm để hiểu thêm.
=> Mô tả ví dụ: lệnh SUB như trên hình khi có tác động ngõ vào EN thì sẽ thực
hiện lấy IN1-IN2 và lưu giá trị vào ô nhớ OUT.

Lệnh phép tính nhân trên plc siemens s7-1200

Lệ
nh phép tính nhân trên plc siemens s7-1200
Mô tả chi tiết lệnh phép toán nhân trên plc siemens s7-1200

 EN là ngõ vào kích hoạt lệnh


 IN1 là toán tử nhân 1
 IN2 là toán tử nhân 2
 OUT là ô nhớ lưu kết quả của phép nhân
 IN1 IN2 có thể sử dụng trên vùng nhớ: SInt, Int, DInt, USInt, UInt, UDInt,
Real, LReal, hằng số
 OUT có thể sử dụng trên vùng nhớ SInt, Int, DInt, USInt, UInt, UDInt,
Real, LReal.
=> Mô tả ví dụ: lệnh MUL như trên hình sẽ thực hiện phép nhân giữa MD30 và
MD34 sau đó lưu kết quả vào MD38

Lệnh phép tính chia trên plc siemens s7-1200


Lện
h phép toán chia trên plc siemens s7-1200
Mô tả chi tiết lệnh phép toán chia trên plc siemens s7-1200

 EN là ngõ vào kích hoạt lệnh


 IN1 là số bị chia
 IN2 là số chi
 OUT là kết quả của phép chia
 IN1 IN2 có thể sử dụng trên vùng nhớ: SInt, Int, DInt, USInt, UInt, UDInt,
Real, LReal, hằng số
 OUT có thể sử dụng trên vùng nhớ: SInt, Int, DInt, USInt, UInt, UDInt,
Real, LReal
 Lưu ý: khi thực hiện phép chia cho 0 thì kết quả lưu vào OUT sẽ là 0.
=> Mô tả chi tiết ví dụ: lệnh DIV trên sẽ thực hiện lấy IN1 là MD40(28) chia cho
IN2 là MD44(4) sau đó lưu giá trị vào OUT MD48(7)

Một số lệnh tính toán khác trên plc siemens s7-


1200
 INC: tăng giá trị ô nhớ lên 1 đơn vị
 DEC: giá giá trị ô nhớ lên 1 đơn vị
 ABS: lệnh lấy giá trị tuyệt đối
 MIN: lấy giá trị nhỏ nhất
 MAX: lấy giá trị lớn nhất.

You might also like