Lệnh toán học và so sánh trong plc s7 1200
Một hoạt động chia số nguyên sẽ cắt bỏ phần phân số của thương số để tạo ra một tín hiệu ra số nguyên. Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ trình đơn thả xuống. Lưu ý: Các thông số lệnh phép toán cơ bản INI, IN2 và OUT phải có kiểu dữ liệu giống nhau. Khi được cho phép (EN =1), lệnh phép toán thực hiện hoạt động được định rõ trên các giá trị ngõ vào (INI và IN2) và lưu trữ kết quả trong địa chỉ nhớ được xác định bởi thông số ngõ ra (OUT). Sau một sự hoàn tất thành công phép toán, lệnh sẽ đặt ENO = 1. Lệnh MOD Ta sử dụng lệnh MOD (modulo) cho phép toán INI modulo IN2. Phép toán INI MOD IN2 = INI – (IN1/IN2) = thông số OUT. Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đom thả xuống. Lưu ý: Các thông số INI, IN2 và OUT phải có kiểu dữ liệu giống nhau. Lệnh NRG Ta sử dụng lệnh NEG (phép đảo) để đảo ngược dấu số học của giá trị tại thông số IN và lưu trữ kết quả trong thông số OUT. Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đon thả xuống. Các thông số IN và OUT phải có kiểu dữ liệu giống nhau. Các lệnh tăng và giảm Ta sử dụng các lệnh INC và DEC để:
– Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trinh đơn thả xuống. Lệnh giá trị tuyệt đối Ta sử dụng lệnh ABS để nhận được giá trị tuyệt đối của một số nguyên có dấu hoặc một số thực tại thông số IN và lưu trữ kết quả trong thông số OUT. Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống. Lưu ý: Các thông số IN và OUT phải có kiểu dữ liệu giống nhau. Lệnh MIN và MAX Ta sử dụng lệnh MIN lminimum: cực tiểu) và MAX (maximum: cực đại) như sau:
– Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống. Lưu ý: Các thông số IN và OUT phải có kiểu giá trị giống nhau. Lệnh giới hạn Ta sử dụng lệnh LIMIT để kiểm tra xem giá trị của thông số IN có nằm bên trong phạm vi giá trị xác định bởi các thông số MIN và MAX hay không. Giá trị OUT được giữ lại tại giá trị MIN hay MAX, nếu giá trị IN nằm ngoài phạm vi này.
Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống. Lưu ý: Các thông số MIN, IN, MAX và OUT phải có kiểu giá trị giống nhau. Các lệnh toán học dấu phẩy động Ta sử dụng các lệnh dấu phẩy động để lập trình việc vận hành toán học sử dụng kiểu dữ liệu Real hay LReal:
Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống. Các thông số EXPT là INI và OUT luôn luôn là Real. Ta có thể lựa chọn kiểu dữ liệu cho thông số số mũ IN2. 5.1.6 Di chuyển Các lệnh di chuyển và di chuyển khối Ta sử dụng các lệnh di chuyển để sao chép các phần tử dữ liệu đến một địa chỉ nhớ mới và chuyển đổi từ một kiểu dữ liệu này sang kiểu khác. Dữ liệu nguồn không bị thay đổi trong quá trình di chuyển.
Lưu ý: Các quy tắc đối với hoạt động sao chép dữ liệu: Để sao chép kiểu dữ liệu Bool, sử dụng SET_BF, RESET_BF, R, s hoặc cuộn
Lệnh MOVE sao chép một phần tử dữ liệu đơn lẻ từ một địa chỉ nguồn được xác định bởi thông số IN đến địa chỉ đích được xác định bởi thông số OUT. Lệnh MOVE BLK và UMOVE BLK có một thông số thêm vào là COUNT. Thông số COUNT chỉ ra có bao nhiêu phần tử dữ liệu được sao chép, số lượng các byte trong mỗi phần tử được sao chép phụ thuộc vào kiểu dữ liệu được gán cho tên gắn nhãn của thông số IN và OUT trong bảng gắn nhãn PLC. Các lệnh MOVE BLK và UMOVE BLK khác nhau ở cách thức mà các ngắt được thực hiện: Các sự kiện ngắt được xếp hàng và được xử lý trong suốt việc thực thi MOVE BLK. Sử dụng lệnh MOVE BLK khi dữ liệu tại địa chỉ di chuyển đích không được sử dụng bên trong một chương trình con OB ngắt, hoặc nếu nó được sử dụng thì dữ liệu đích không bắt buộc phải là nhất quán. Nếu một hoạt động MOVE BLK bị ngắt, phần tử dữ liệu sau cùng được di chuyển sẽ hoàn tất và nhất quán tại địa chỉ đích. Hoạt động MOVE BLK được khôi phục lại sau khi thực thi OB ngắt hoàn tất. Lệnh MOVE sao chép một phần tử dữ liệu đơn lẻ từ một địa chỉ nguồn được xác định bởi thông số IN đến địa chỉ đích được xác định bởi thông số OUT. Lệnh MOVE BLK và UMOVE BLK có một thông số thêm vào là COUNT. Thông số COUNT chỉ ra có bao nhiêu phần tử dữ liệu được sao chép, số lượng các byte trong mỗi phần tử được sao chép phụ thuộc vào kiểu dữ liệu được gán cho tên gắn nhãn của thông số IN và OUT trong bảng gắn nhãn PLC. Các lệnh MOVE BLK và UMOVE BLK khác nhau ở cách thức mà các ngắt được thực hiện: Các sự kiện ngắt được xếp hàng và được xử lý trong suốt việc thực thi MOVE BLK. Sử dụng lệnh MOVE BLK khi dữ liệu tại địa chỉ di chuyển đích không được sử dụng bên trong một chương trình con OB ngắt, hoặc nếu nó được sử dụng thì dữ liệu đích không bắt buộc phải là nhất quán. Nếu một hoạt động MOVE BLK bị ngắt, phần tử dữ liệu sau cùng được di chuyển sẽ hoàn tất và nhất quán tại địa chỉ đích. Hoạt động MOVE BLK được khôi phục lại sau khi thực thi OB ngắt hoàn tất. Các lệnh lấp đầy Ta sử dụng các lệnh FILL_BLK và UFILL_BLK như:
Lưu ý: Các quy tắc đối với việc thực thi lắp đầy:
Các lệnh FILL_BLK và UFILL_BLK không thể được sử dụng để lấp đầy các mảng trong các vùng nhớ I, Q, hay M. Các lệnh FI11_BLK và UFILL_BLK sao chép phần tử dữ liệu nguồn IN đến đích tại đó địa chỉ ban đầu được xác định bởi thông số OUT. Tiến trình sao chép lặp lại và một khối các địa chỉ kế cận nhau được lấp đầy cho đến khi số lượng các bản sao bằng với thông số COUNT. Các lệnh FILL_BLK và UFILL_BLK khác nhau ở cách thức mà các ngắt được thực hiện:
5.1.6.1 Lệnh tráo đổi. Ta sử dụng lệnh SWAP để đảo ngược trật tự byte cho các phần tử dữ liệu 2 byte và 4 byte. Không có sự thay đổi nào được thực hiện đến trật tự bit trong phạm vi mỗi byte. ENO luôn luôn nhận giá trị “TRUE” theo sự thực thi của lệnh SWAP. Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đom thả xuống. 5.1.7 Chuyển đổi. Lệnh chuyển đổi Ta sử dụng lệnh CONVERT để chuyển đổi một phần tử dữ liệu từ một kiểu dữ liệu này sang một kiểu dữ liệu khác. Ta nhấp vào phía dưới tên hộp và chọn các kiểu dữ liệu IN và OUT từ danh sách thả xuống. Sau khi ta lựa chọn kiểu dữ liệu để chuyển đổi, một danh sách những sự chuyển đổi có khả năng sẽ được cho thấy trong danh sách thả xuống chuyển đổi đến. Những sự chuyển đổi từ/đến BCD16 bị hạn chế đối với kiểu dữ liệu Int. Những sự chuyển đổi từ/đến BCD32 bị hạn chế đối với kiểu dữ liệu Dlnt. Ta nhấp vào phía dưới tên hộp và chọn các kiểu dữ liệu từ trình đơn thả xuống. Các lệnh làm tròn và cắt bỏ Lệnh ROUND chuyển đổi một số thực thành một số nguyên. Phần phân số của số thực được làm tròn đến giá trị số nguyên gần nhất (IEEE – làm tròn đến gần nhất). Nếu số thực nằm chính xác ở giữa vùng giữa 2 số nguyên thì số thực này được làm tròn đến số nguyên chẵn. Ví dụ: ROUND(10,5) = 10 và ROUND(ll,5)= 12. Lệnh TRUNC chuyển đổi một số thực thành một số nguyên. Phần phân số của số thực được cắt bỏ thành 0 (IEEE – làm tròn thành 0). Các lệnh CEIL và FLOOR Lệnh CEIL chuyển đổi một số thực thảnh số nguyên nhỏ nhất lớn hơn hay bằng số thực đó (IEEE – làm tròn đến dương vô cùng). Lệnh FLOOR chuyển đổi một số thực thành số nguyên lớn nhất nhỏ hơn hay bằng số thực đó (IEEE – làm tròn đến âm vô cùng). 5.1.7.1 Các lệnh định tỷ lệ và chuẩn hóa. Các lệnh định tỷ lệ và chuẩn hóa Lệnh SCALEX định tỷ lệ của thông số số thực được chuẩn hóa VALUE, với (0,0 <= VALUE <= 1,0) thành kiểu dữ liệu và phạm vi giá trị được xác định bởi các thông số MIN và MAX: OUT = VALUE (MAX – MIN) + MIN Đối với lệnh SCALE X, các thông số MIN, MAX và OUT phải là kiểu dữ liệu giống nhau. Lệnh NORM X làm chuẩn hóa thông số VALUE bên trong phạm vi giá trị được xác định bởi các thông số MIN và MAX: OUT = (VALUE – MIN) / (MAX – MIN) với (0,0 <= OUT <= 1,0) Đối với lệnh NORM X, các thông số MIN, VALUE và MAX phải là kiểu dữ liệu giống nhau. Ta nhấp vào phía dưới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống. Lưu ý: Thông số VALUE trong lệnh SCALE X nên được hạn chế trong khoảng (0,0<=VALUE<=1,0) Nếu thông số VALUE nhỏ hơn 0,0 hay lớn hơn 1,0 thì:
Thông số VALUE trong NORM X nên được hạn chế trong khoảng (MIN <= VALUE <= MAX) Nếu thông số VALUE nhỏ hơn MIN hay lớn hơn MAX, sự hoạt động chia tỷ lệ tuyến tính có thể tạo ra các giá trị OUT được chuẩn hóa nhỏ hơn 0 hay lớn hơn 1. Trong trường họp này sự thực thi NORM X đặt ENO = TRUE. 5.1.8 Điều khiển chương trình. Các lệnh nhảy và ghi nhãn Ta sử dụng các lệnh điều khiển chương trình cho các điều khiển điều kiện trong chuỗi thực thi: Lệnh JMP: nếu có dòng tín hiệu đến một cuộn dây JMP (LAD), hay nếu tín hiệu vào hộp JMP (FBD) là đúng thì sau đó sự thực thi chương trình tiếp tục với lệnh đầu tiên theo nhãn được chỉ định. Lệnh JMPN: nếu không có dòng tín hiệu đi đến một cuộn dây JMP (LAD), hay nếu tín hiệu vào hộp JMP (FBD) là sai thì sau đó sự thực thi chương trình tiếp tục với lệnh đầu tiên theo nhấn được chỉ định. Lệnh Label: nhãn nơi đến cho lệnh nhảy JMP hay JMPN. Ta tạo ra các tên nhãn bằng cách gõ trực tiếp trong lệnh LABEL. Các tên nhãn sẵn có cho trường tên nhãn JMP và JMPN có thể được chọn bằng cách sử dụng biểu tượng trợ giúp thông số. Ta còn có thể gõ một tên nhãn trực tiếp bên trong lệnh JMP hay JMPN. Lệnh điều khiển thực thi trả về giá trị (RET) Lệnh tùy chọn RET được sử dụng để kết thúc sự thực thi của khối hiện thời. Nếu và chỉ nếu có dòng tín hiệu đi đến cuộn dây RET (LAD) hay nếu tín hiệu vào của hộp RET là đúng (FBD) thì sau đó sự thực thi chương trình của khối hiện thời sẽ kết thúc tại điểm đó và các lệnh nằm sau lệnh RET sẽ không được thực thi. Nếu khối hiện thời là một OB, thông số “Retum Value” được bỏ qua. Nếu khối hiện thời là một FC hay FB, giá trị thông số “Retum Value” được đi qua trở về đến đoạn chương trình đang gọi nhu giá trị ENO của hộp được gọi. Ta không được yêu cầu sử dụng lệnh RET là câu lệnh cuối cùng trong một khối vì điều này được thực hiện một cách tự động cho ta. Ta có thể có nhiều lệnh RET bên trong một khối đơn lẻ. Các bước mẫu để sử dụng lệnh RET bên trong một khối mã FC:
Ngõ vào EN trên hộp FC ừong khối mã MAIN phải là đúng để bắt đầu sự thực thi của FC. Giá trị được xác định bởi lệnh RET trong FC sẽ hiện diện trên ngõ ra ENO của hộp FC trong khối mã MAIN, theo sau sự thực thi của FC mà dòng tín hiệu đến lệnh RET của nó là đúng. 5.1.9 Các phép toán logic. Các lệnh AND, OR và XOR Lệnh AND: cho các kiểu dữ liệu Byte, Word và DWord Lệnh OR: cho các kiểu dữ liệu Byte, Word và DWord Lệnh XOR: cho các kiểu dữ liệu Byte, Word và DWord. Ta nhấp vào phía duới tên hộp và lựa chọn một kiểu dữ liệu từ trình đơn thả xuống. Việc lựa chọn kiểu dữ liệu đặt các thông số INI, IN2 và OUT về kiểu dữ liệu giống nhau. Các giá trị bit tuơng ứng của INI và IN2 được kết nối để tạo ra một kết quả logic nhị phân tại thông số OUT. ENO luôn luôn là TRUE theo sự thực thi của các lệnh này. Lệnh lấy bù Ta sử dụng lệnh INV để nhận được phần bù 1 nhị phân của thông số IN. Phần bù 1 được thực hiện bằng cách đảo ngược giá trị bỉt của thông số IN (thay đổi mỗi giá trị 0 thành 1 và mỗi giá trị 1 thành 0). ENO luôn luôn là TRUE theo sự thực thi của lệnh này. Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ trình đon thả xuống. Các lệnh mã hóa và giải mã Lệnh ENCO mã hóa một mẫu bỉt thảnh một số nhị phân. Lệnh DECO giải mã một số nhị phần thành một mẫu bit. Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ trình đom thả xuống. Lệnh ENCO mã hóa một mẫu bỉt thảnh một số nhị phân. Lệnh DECO giải mã một số nhị phần thành một mẫu bit. Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ trình đom thả xuống. Lệnh ENCO chuyển đổi thông số IN thành một số nhị phân tưomg ứng với vị trí bỉt của bỉt đặt có trọng số nhỏ nhất trong thông số IN và trả kết quả đến thông số OUT. Nếu thông số IN là 0000 0001 hay 0000 0000 thì sau đó giá trị 0 được trả về đến OUT. Nếu thông số IN là 0000 0000 thì ENO được đặt là FALSE. Lệnh DECO giải mã một số nhị phân từ thông số IN, bằng cách đặt vị trí bit tưomg ứng trong thông số OUT lên giá trị 1 (tất cả các bit khác được đặt về 0). ENO luôn luôn là TRUE theo sự thực thi của lệnh DECO. Sự lựa chọn kiểu dữ liệu cho thông số OUT của DECO gồm Byte, Word hay DWord làm giới hạn phạm vi hữu dụng của thông số IN. Neu giá trị của thông số IN vượt quá phạm vi hữu dụng này, một phép toán modulo được thực hiện để tách ra các bỉt có trọng số nhỏ nhất được liệt kê dưới đây: Phạm vi thông số IN của lệnh DECO:
Các lệnh lựa chọn và chọn kênh Lệnh SEL gán một trong hai giá trị ngõ vào đến thông số OUT, phụ thuộc vào giá trị thông số G. Lệnh MUX gán một trong nhiều giá trị các ngõ vào đến thông số OUT, phụ thuộc vào giá trị thông số K. Nếu giá trị thông số K vượt quá phạm vi họp lệ, giá trị thông số ELSE sẽ được gán đến thông số OUT. Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ trình đơn thả xuống. Các biến số ngõ vào và biến số ngõ ra phải có kiểu dữ liệu giống nhau.
Sử dụng các phương pháp sau đây để thêm vào hay loại ra các thông số ngõ vào cho lệnh MUX:
Các mã điều kiện: ENO luôn luôn là TRUE theo sự thực thi của lệnh SEL. 5.1.10 Dịch chuyển và xoay. Lệnh dịch chuyển Ta sử dụng các lệnh dịch chuyển để dịch chuyển mẫu bit của thông số IN. Kết quả được gánđến thông số OUT. Thông số N xác định số lượng của các vị trí bỉt được dịch chuyển.
Ta nhấp vào phía dưới tên hộp và lựa chọn một kiểu dữ liệu từ danh sách thả xuống. Với N = 0, không có dịch chuyển xuất hiện và giá trị IN được gán đến OUT.
Với N = 0, không có dịch chuyển xuất hiện và giá trị IN được gán đến OUT.
Lệnh xoay Ta sử dụng các lệnh xoay để xoay mẫu bỉt của thông số IN. Kết quả được gán đến thông số OUT. Thông số N xác định số lượng của các vị trí bỉt được xoay. |