Có bất kỳ PLC thương mại nào có thể biên dịch / tải xuống các chương trình thông qua API không?


9

Nhóm của tôi đã quyết định sử dụng PLC để điều khiển một quy trình công nghiệp đòi hỏi IO đơn giản, thời gian thực cho các thiết bị bên ngoài với khả năng xử lý tối thiểu. Tuy nhiên, chúng tôi hy vọng các đầu ra chính xác cần thiết để thay đổi giữa các lần chạy (trên thực tế, một lần chạy nhất định sẽ rất hiếm khi được lặp lại) và nhà điều hành sẽ không có bất kỳ kinh nghiệm lập trình PLC / phần mềm nào.

Mặc dù tôi không thể tiết lộ sản phẩm thực tế, điều tương tự tốt nhất là chúng tôi đang thiết kế một nhà sản xuất sinh tố công nghiệp, với PLC điều khiển chính xác việc mở và đóng các van khác nhau trong thời gian thực. Nhà điều hành sẽ sử dụng phần mềm của chúng tôi để thiết kế một chuỗi tùy chỉnh bổ sung các thuốc thử khác nhau và bật / tắt máy móc hạng nặng có liên quan (ví dụ: máy trộn công nghiệp).

Đây là một thách thức: cách tiếp cận hiện tại của chúng tôi là viết trình biên dịch riêng của chúng tôi để dịch các hướng dẫn mà người vận hành đưa ra (van mở A trong 10 ms, van mở B trong 20 ms) thành logic thang và mã máy PLC. Sau đó, chúng tôi sẽ trực tiếp tải chương trình tự biên dịch của mình về PLC qua serial. Tất cả điều này sẽ cần phải được tự động hóa để người vận hành chỉ cần nhấp vào nút sau khi đưa ra trình tự các bước của mình.

Tuy nhiên, mặc dù nghiên cứu của tôi, tôi không tìm thấy một nhà cung cấp PLC nào cả 1) có trình biên dịch với API hoặc xuất bản đủ thông tin về mã máy PLC của họ để cho phép một người viết trình biên dịch, 2) hỗ trợ tải xuống trực tiếp các chương trình cho PLC không sử dụng phần mềm lập trình của nhà cung cấp (lập trình viên CX, studio Atmel, v.v.).

Tôi được tin rằng chúng ta có thể đang sử dụng sai phương pháp, hoặc ít nhất là không biết nên tìm sản phẩm nào. I / o đủ đơn giản để không biện minh cho việc xây dựng bảng mạch của chúng ta, nhưng chức năng chúng ta đang tìm kiếm, cụ thể là tương tác PLC với phần mềm PC cấp cao, dường như không khả dụng.

Lý tưởng nhất là chúng tôi muốn tải toàn bộ chương trình về PLC cùng một lúc và không gửi từng hướng dẫn một lần. Việc thực hiện tất cả các hướng dẫn trên PLC (hoặc bất kỳ thiết bị nào chúng tôi kết thúc sử dụng) cần phải là thời gian thực.

Có bất kỳ PLC nào có sẵn trên thị trường hỗ trợ biên dịch và tải xuống mã máy, sao cho toàn bộ quá trình có thể được tự động hóa bởi một chương trình lớn hơn không? Có cách nào khác để tải chương trình thời gian thực về PLC được viết bởi phần mềm PC được viết bằng ngôn ngữ cấp cao không?


Điều gì về việc sử dụng HĐH và cho phép người dùng chỉnh sửa mã chương trình của bạn thông qua GUI tùy chỉnh và biên dịch nó, ví dụ như với GCC và sau đó tải chương trình đã biên dịch về "PLC" của bạn.
Eggi

Bạn có thể đề xuất các tài liệu hoặc hướng dẫn giới thiệu các nguyên tắc và lập trình RTOS không? Tôi quen thuộc nhất với phát triển nhúng không RT và logic bậc thang truyền thống, vì vậy trong khi tôi rất quan tâm đến giải pháp này, tôi không chắc chắn nên bắt đầu từ đâu với điều này.
Dragonsheep

@ API là gì? Nếu đó là "giao diện chương trình ứng dụng", thì làm thế nào để bạn biên dịch / tải xuống thông qua nó?
Dmitry Grigoryev

1
@Dragonsheep Tốt hơn bỏ qua ý tưởng này. Có quá nhiều khía cạnh không phải là bằng chứng công nghiệp như Henry Cun đã nêu. 1: Làm thế nào để bạn thay đổi mã trước khi biên dịch? Đặt nó ở đâu đó trong văn bản rõ ràng? Lần 2: hỗ trợ qua nhiều thập kỷ với HĐH
Eggi

Câu trả lời:


11

Bạn chắc chắn có thể sử dụng một PLC cho việc này. Ngoại trừ, bạn không muốn thay đổi mã PLC cho mỗi "công thức sinh tố".
Bạn nên viết một ứng dụng PLC đọc công thức nấu ăn từ bất kỳ nguồn nào, như thẻ sd, lưu trữ mạng, lưu trữ nội bộ hoặc thậm chí mã QR nếu bạn cảm thấy lạ mắt.

Thông thường PLC đã có một tính năng cho việc này , trong đó công thức là một tập hợp các tham số bạn có thể tải (và chỉnh sửa bằng HMI).

IO thời gian thực cho các thiết bị bên ngoài với xử lý tối thiểu

Dù bạn chọn sử dụng , đừng phát minh ra PLC của riêng bạn . Nó có lẽ không đáng thời gian. Và đừng nghĩ rằng phần mềm hoặc mô-đun bổ sung là đắt tiền, bạn không thể viết nó với giá đó.


5

Tôi sẽ giả định rằng đây là một nhiệm vụ khá đơn giản cho một plc tối thiểu, thay vì một cái gì đó sử dụng các PLC công nghiệp tiên tiến

Tôi cũng sẽ cho rằng điều này là hữu ích về mặt công nghiệp, có nghĩa là, công thức sẽ có thể được thay đổi trong thời gian 10 năm, bởi khách hàng. Ngoài ra, tính hữu dụng của nó sẽ giúp bạn thoát khỏi việc kinh doanh hoặc chuyển sang các sản phẩm mới.

Nhiều hệ thống sẽ yêu cầu một số phần mềm đặc biệt để tải xuống và / hoặc biên dịch, như bạn nói. Về lâu dài, khách hàng của bạn sẽ thấy rằng Windows 11,12,13 sẽ không chạy phần mềm nữa. Để tránh điều này, bạn muốn chương trình đơn giản là ascii, được gửi qua một cổng nối tiếp nào đó. Điều này đã diễn ra được khoảng 50 năm nay và không có dấu hiệu biến mất.

Forth có thể được "biên dịch" trên mục tiêu, vì vậy khách hàng chỉ phải gửi ascii đến nó từ một thiết bị đầu cuối. Nó sẽ không bao giờ bị lỗi thời.

Một phần của nguyên tắc Forth là bạn viết các nguyên hàm cụ thể của miền ("AddBanana", "Blend", "Pour") mà khách hàng của bạn coi là ngôn ngữ cụ thể cho sản phẩm. Mặc dù Forth được người máy tính coi là phức tạp, nhưng về mặt khái niệm nó rất dễ sử dụng cho người dùng cuối - đây sẽ là một chương trình hợp lệ.

10 grams Thickener 500 grams Banana 15 seconds Hi Blend 50 grams Blueberry 5 seconds slow Blend Pour 5 seconds wait CleanCycle

Ví dụ, bạn có thể sử dụng PLC dựa trên Arduino nhỏ và tải FlashForth Có nhiều lựa chọn khác, ví dụ MPEForth và PLC dựa trên ARM -cortex

Phần mềm của bạn bây giờ là bất kỳ trình soạn thảo nào và một số chương trình để gửi nối tiếp. Có các công cụ tiêu chuẩn cho việc này, và rất lâu sau khi bạn đi, khách hàng có thể làm cho nó hoạt động lại từ đầu, vì nó rất đơn giản.

Một thất bại với toàn bộ ý tưởng của bạn, là khách hàng đang lập trình sản phẩm và tất nhiên có thể xử lý nó bằng cách làm sai - bất cứ điều gì bạn thích.

Bởi vì nó chỉ là tập tin ascii, bạn có thể dễ dàng tạo ra một lớp vỏ lạ mắt cho khách hàng, nhưng sản phẩm vẫn sẽ hoạt động mà không có nó.


Cảm ơn vi đa trả lơi! Một cái gì đó giống như Controlino mà bạn đề xuất chính xác là những gì chúng tôi đang tìm kiếm! Một PLC tối giản nơi chúng tôi có quyền kiểm soát trực tiếp phần mềm và có thể tải xuống các chương trình qua nối tiếp. Khi bạn nói rằng chúng tôi có "nhiều lựa chọn khác", các cụm từ tìm kiếm có liên quan sẽ là gì / bạn đề xuất sản phẩm nào khác? Nhóm của tôi quen thuộc nhất với ngành công nghiệp nặng, vì vậy chúng tôi đã hết ý tưởng sau khi xem qua các danh mục thông thường của Siemens / Mitsubishi / Omron và không tìm thấy những gì chúng tôi đang tìm kiếm.
Dragonsheep

@Dragonsheep: Chúng tôi khuyên bạn nên đợi một hoặc hai ngày trước khi chấp nhận câu trả lời. Điều này khuyến khích người khác viết và bạn sẽ nhận được nhiều phản hồi và quan điểm khác nhau.
Transitor

Nếu đây là một cách tiếp cận thú vị với bạn và bạn là người trả tiền cho các công cụ, chuyên môn và hỗ trợ, thì bạn có thể muốn nói chuyện với Stephen Pelc tại MPEForth. Anh ấy làm điều này về mặt thương mại. Mặt khác, nếu bạn là người làm phần mềm bia miễn phí, thì hãy tìm các mô-đun dựa trên arduino hoặc plc và FlashForth.
Henry Crun

1
Tôi cũng đồng ý với câu trả lời của @Transistor và Jeroen: Nếu thứ bạn cần là một PLC công nghiệp, thì chúng là thứ bạn cần. (và các mô-đun plc Arduino ngẫu nhiên không đủ mạnh để trở thành bộ điều khiển của nhà máy, hơn nữa là bộ điều khiển bên trong hộp lành tính). Tôi có xu hướng không đồng ý với các giải pháp loại "lấy thứ gì đó với HĐH và sử dụng GCC" vì có thể dẫn đến điều tồi tệ nhất trong tất cả các thế giới có thể.
Henry Crun

Đây thực sự là một ứng dụng công nghiệp mà chúng tôi hy vọng sẽ bán cho khách hàng. Chúng tôi hy vọng sẽ có độ tin cậy trên 20 năm mà các nhà cung cấp công nghiệp lớn (Mitsubishi, v.v.) đã chứng minh với các sản phẩm của họ, vì vậy có một số lo ngại khi đến một trong những nhà cung cấp phần cứng nguồn mở mới hơn này. Đồng thời, phần mềm thông minh, nguồn mở dường như cung cấp cho chúng tôi quyền kiểm soát mà chúng tôi đang tìm kiếm. Stephen dường như là một người tốt để tiếp cận. Cảm ơn đã dẫn đầu.
Dragonsheep

2

Đừng gây rối với Arduino, v.v., cho một ứng dụng công nghiệp. PLC được thiết kế với độ tin cậy, mạnh mẽ, tiêu chuẩn và hỗ trợ lâu dài. Công ty tôi làm việc đang điều hành ít nhất một PLC Texas Texas từ năm 1987 và một số công ty khác từ đầu những năm 1990. Phụ tùng vẫn có sẵn từ các nguồn công nghiệp trên eBay, v.v.

Sử dụng PLC và HMI công nghiệp có đủ năng lượng để làm những gì bạn yêu cầu. Gần đây tôi đã hoàn thành một công việc trộn, nơi chúng tôi muốn công thức linh hoạt với các bước tự động và thủ công. Trình tự được điều khiển bằng cách bước qua một mảng được lập trình thông qua HMI.

  • Số bước. ví dụ: '5'.
  • Sự miêu tả. ví dụ: 'Tự động cân chuối', 'Anh đào tải thủ công', 'Cạo xuống'.
  • Tốc độ trộn (RPM). ví dụ: '25'.
  • Thời gian trộn (s). ví dụ: '120'.
  • Cần phải cạo xuống ở cuối bước? (Y / N), vd: 'Y'.
  • Nhiệt cần thiết? (Y / N), vd: 'N'.
  • Nhiệt độ (° C). ví dụ: '0'.

Chúng tôi đã thiết kế hệ thống với một loạt gồm hai mươi bước là đủ cho tương lai gần nhưng có thể dễ dàng mở rộng, nếu cần. Tất cả các cài đặt có giá trị tối thiểu và tối đa được đặt trong ứng dụng HMI.

Điều này khiến hệ thống rất linh hoạt và có thể chỉnh sửa. Chúng tôi có một hệ thống mạnh mẽ với PLC và HMI quen thuộc và được hỗ trợ bởi bất kỳ số lượng lớn các công ty.


Cảm ơn vi đa trả lơi. Ứng dụng cụ thể mà chúng tôi có là dành cho hóa sinh tự động, vì vậy với hàng trăm thuốc thử và có khả năng hàng trăm bước liên quan đến quá trình chúng tôi tự động hóa, theo ý kiến ​​hiện tại của tôi rằng bất kỳ loại lập trình thiết bị HMI nào cũng sẽ vô cùng phức tạp.
Dragonsheep

1

Bạn chưa chỉ định ngân sách cho phần cứng và phần mềm phát triển hoặc chi phí cho mỗi đơn vị phần cứng được triển khai, nhưng nếu bạn có đủ khả năng thì yêu cầu của bạn chắc chắn có thể được đáp ứng bằng phần cứng NationalR CompactRIO và phần mềm Thời gian thực LabVIEW .

Bộ điều khiển CompactRIO là bộ điều khiển nhúng công nghiệp, chắc chắn, hiệu suất cao, hiệu suất cao với các chứng chỉ tiêu chuẩn công nghiệp.

Có sẵn một loạt các mô-đun I / O cắm vào khung của bộ điều khiển hoặc nếu thiết kế của bạn đã được sửa và bạn muốn giảm chi phí cho mỗi đơn vị, bộ điều khiển và I / O có sẵn dưới dạng bảng để bạn tích hợp với phần cứng của bạn . Bạn sẽ viết phần mềm trong LabVIEW Real-Time để chạy trên bộ điều khiển và thực hiện điều khiển quy trình và điều này cũng có thể phục vụ giao diện người dùng dựa trên web để chỉnh sửa các bước quy trình hoặc có thể giao tiếp với chương trình UI, được viết bằng LabVIEW hoặc ngôn ngữ khác , chạy trên PC chủ. Tôi có kinh nghiệm hạn chế với PLC nhưng tôi nghĩ thật công bằng khi nói giải pháp này sẽ là một thứ tự mạnh mẽ và linh hoạt hơn, mặc dù có lẽ với chi phí cao hơn.

Lưu ý rằng mặc dù bộ điều khiển cRIO đi kèm với một GPU trên bo mạch, bạn không cần phải mua mô-đun LabVIEW FPGA trừ khi bạn thực sự cần phải viết mã FPGA; có vẻ như thời gian thực sẽ tốt cho nhu cầu của bạn.


0

Đề nghị của tôi là hãy xem LabVIEW. Tôi nghĩ rằng nó sẽ đáp ứng nhu cầu được liệt kê trong bài viết của bạn. Tránh viết trình biên dịch của bạn. Đó là cách làm việc nhiều hơn bạn cần làm. Chúng là nhiều PLC thương mại phù hợp với dự luật. Tôi nghĩ NI là một trong những người dễ làm việc hơn. Đối với việc tải xuống các chương trình người dùng, bạn cần tạo một ứng dụng để thực hiện điều đó.

http://www.ni.com/en-us/shop/labview.html

NI có một loạt các mô-đun bao gồm AtoD, đầu ra kỹ thuật số, đầu ra analog, giao diện CAN, v.v ... Phần mềm này rất hữu ích để tạo giao diện người dùng đẹp mắt. Nhược điểm là không rẻ. Nếu cũng rất khác với lập trình dựa trên văn bản. Một số đào tạo sẽ được yêu cầu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.