Python có được sử dụng trong tự động hóa công nghiệp không?

Đây là câu chuyện về Python tại cơ sở sản xuất chất bán dẫn Philips ở Fishkill, NY. Cơ sở này, ban đầu được xây dựng bởi IBM, đã được Philips mua lại vào năm 2000. Tôi đã tham gia và tắt cơ sở này trong mười hai năm qua và chịu trách nhiệm thiết kế lại các phần quan trọng của phần mềm điều khiển công cụ nhà máy bằng Python

Vào đầu những năm 1990, nhà máy đã áp dụng chiến lược tự động hóa dựa trên công nghệ bộ nạp và dỡ công cụ của Asyst Technology. Công nghệ này đã giảm thiểu sự nhiễm bẩn của các tấm bán dẫn bằng cách sử dụng rô-bốt để vận chuyển chúng giữa các hộp chứa kín và các công cụ xử lý và đo lường. Là một phần của sự thay đổi này, việc kiểm soát dây chuyền sản xuất đã được phân cấp và "máy trạm công cụ" đã được cài đặt trên hầu hết các công cụ riêng lẻ. Các trạm làm việc của công cụ này đã thay thế các thiết bị đầu cuối của bộ điều khiển khu vực hiện tại làm giao diện chính cho hệ thống điều khiển của nhà máy, đồng thời đảm nhận một số nhiệm vụ bổ sung

  • Kiểm soát các công cụ và thu thập dữ liệu từ các công cụ bằng SECS, đây là một giao thức truyền thông được sử dụng trong tự động hóa các cơ sở sản xuất điện tử
  • Gửi dữ liệu đã thu thập đến cơ sở dữ liệu máy tính lớn và PC. Dữ liệu này được sản xuất và kỹ thuật sử dụng để theo dõi sản phẩm và cũng được sử dụng để tự động điều chỉnh hiệu suất của các công cụ
  • Tự động hóa kiểm soát hậu cần bằng cách ghi lại sự đến và đi của các tấm wafer tại các công cụ. Điều này trước đây đã được thực hiện thủ công
  • Trình bày giao diện người dùng chung trên tất cả các hệ thống, trong đó người dùng trước đây phải làm việc với các giao diện khác nhau được trình bày trực tiếp bởi từng công cụ
  • Trong nhiều trường hợp, việc điều khiển robot nạp và dỡ dụng cụ

Vào đầu những năm 1990, kiến ​​trúc của phần mềm máy trạm công cụ được chia thành một số thành phần riêng biệt. Giao diện người dùng, mô-đun giao tiếp SECS, giao diện thu thập dữ liệu, v.v. Các hoạt động của từng thành phần này được điều phối bởi một công cụ giải trình tự trong mỗi máy trạm. Vào thời điểm đó, các thành phần và công cụ giải trình tự được viết bằng C và các hoạt động cấp cao được giải trình tự bằng một ngôn ngữ kịch bản độc quyền đơn giản

Cách tiếp cận này đã được sử dụng để phát triển các Chương trình Ứng dụng Công cụ (TAP) trong khoảng 6 năm. Nó được các nhà phát triển hiểu rõ, nhưng có những nhược điểm sau

  • Vì phần lớn mã hóa được thực hiện bằng C nên việc phát triển TAP mất từ ​​3-6 tháng. Tương tự như vậy, việc gỡ lỗi thời gian chạy trong mã đã cài đặt yêu cầu phân tích kỹ lưỡng
  • Hầu hết các mã chung không được mô đun hóa tốt, khiến cho những thay đổi chung trong thực tiễn kinh doanh chung là không thể
  • Kết hợp chặt chẽ với các API hệ thống đã kết hợp cơ sở mã với các công nghệ đang trên đà tuyệt chủng, chẳng hạn như OS/2 và một số thư viện giao tiếp độc quyền

Nhập Python

Sau một thời gian xa cơ sở, tôi trở lại cơ sở Fishkill vào năm 1997. Lúc này, tôi được giao nhiệm vụ thiết kế lại kiến ​​trúc hệ thống bằng công nghệ hiện đại, một dự án được tài trợ do mối quan tâm của Y2K

Trong quá trình xây dựng cơ sở hạ tầng cho kiến ​​trúc này, tôi đã phát triển ngôn ngữ lập trình thông dịch hướng đối tượng của riêng mình, được đặt tên là Bridge Scripting Language (BSL), để thay thế cho ngôn ngữ trình tự ban đầu. Tôi muốn duy trì và mở rộng khả năng dễ dàng thực hiện các thay đổi đối với logic nghiệp vụ mà không cần phải biên dịch lại mã - một tính năng rất hữu ích khi hỗ trợ môi trường sản xuất. Mã thực hành kinh doanh chung ban đầu của hệ thống, cũng như mã thực hành kinh doanh cụ thể cho một vài TAP đầu tiên, được viết bằng BSL

Chính trong thời gian này, tôi bắt đầu quan tâm đến Python. Python có nhiều tính năng giống như BSL - rõ ràng, cú pháp giống C, dễ sử dụng từ điển và các kiểu trình tự, và khả năng mở rộng C/C++. Ngoài ra, nó đã trưởng thành, nhiều tài liệu và một cộng đồng phát triển tích cực đằng sau nó

Vì việc hỗ trợ trình thông dịch BSL ngày càng trở nên cồng kềnh và vì mã BSL rất dễ chuyển sang Python, nên tôi đã tiếp cận các nhà phát triển cấp cao với đề xuất rằng chúng ta nên đổi ngựa ở giữa dòng và thay thế BSL bằng Python

Đề xuất này ban đầu vấp phải nhiều phản ứng trái chiều. Có một số lo ngại về việc liệu bất kỳ ngôn ngữ kịch bản nào (cả BSL hoặc Python) có thực sự phù hợp với phần lớn mã trong hệ thống hay không. Ngoài ra còn có một đội ngũ rất mạnh ủng hộ việc chuyển các phần quan trọng của mã BSL của chúng tôi sang C++. Theo như các ngôn ngữ được giải thích, mọi người dường như có một sở thích không phải là Python

Cuối cùng, sau nhiều cuộc thảo luận, Python đã thắng thế và các nhà phát triển cấp cao đã đồng ý rằng chuyển sang Python là điều nên làm. Điều cuối cùng đã khiến quyết định được đưa ra là thực tế là sẽ mất khoảng ba tháng để chuyển cơ sở mã BSL sang C++. Phải mất hai tuần để chuyển nó sang Python

Dự án này cuối cùng đã thay thế hầu hết mọi thành phần của hệ thống ban đầu. Các lĩnh vực chức năng phụ thuộc nhiều vào API cấp thấp đã được viết lại bằng C++. Giao diện người dùng cũng được viết lại bằng C++, để tận dụng Thư viện lớp giao diện người dùng Visual Age. Tất cả các thành phần này đều có thể định địa chỉ thông qua cơ sở hạ tầng đối tượng phân tán giống như CORBA

Logic nghiệp vụ điều khiển các thành phần này được viết bằng Python, 90% trong số đó là chung cho tất cả các công cụ

Python có được sử dụng trong tự động hóa công nghiệp không?

Kiến trúc Hệ thống cho Dây chuyền Sản xuất Chất bán dẫn của Philips Phóng to

Kết quả

Dự án này là một thành công lớn. Chúng tôi đã xây dựng lại tám năm nỗ lực phát triển phần mềm từ đầu trong vòng chưa đầy hai năm và với một nhóm nhỏ hơn đáng kể. Tôi gán điều này phần lớn cho Python. Với Python, rất dễ dàng để phát triển mã nhanh chóng

Dựa trên kinh nghiệm của tôi trong dự án này, tôi tin rằng có ba lý do tại sao Python tạo điều kiện cho sự phát triển nhanh chóng

  1. Python yêu cầu mã hỗ trợ ít hơn. Trong hầu hết các ngôn ngữ khác, cần có một lượng mã đáng kể chỉ để đi đến điểm triển khai thuật toán. Trong Python, điều này được giữ ở mức tối thiểu. Không cần thiết phải khai báo các biến hoặc kiểu, tạo trình vòng lặp và các đối tượng hỗ trợ khác, ngắt mã thành các tệp cụ thể hoặc viết mã hỗ trợ khác được yêu cầu bằng các ngôn ngữ như C++ hoặc Java. Kết quả là, Python gần như là mã giả thực thi được
  2. Python tăng tốc chu kỳ phát triển. Vì mã Python được trình thông dịch biên dịch thành mã byte một cách nhanh chóng, nên chu kỳ phát triển chỉ là "chỉnh sửa và thực thi" thay vì "chỉnh sửa-biên dịch-thực thi". Trong thực tế, điều này có thể tiết kiệm đáng kể thời gian
  3. Python tạo điều kiện gỡ lỗi. Truy nguyên chi tiết của Python tiết lộ nguyên nhân của sự cố rất nhanh, thường là ngay sau khi kiểm tra. Mặc dù có sẵn các trình sửa lỗi dành cho Python, nhưng chúng tôi vẫn có thể làm việc rất tốt mà không cần đến chúng

Bằng cách sử dụng Python, phần lớn là do các tính năng RAD được xác định ở trên, chúng tôi đã nhận ra những lợi ích bổ sung sau

  • Vì trình thông dịch Python xử lý các lỗi chương trình bằng cách đưa ra các ngoại lệ và không chỉ gặp sự cố như mô-đun C/C++ đầy lỗi, nên rất dễ nắm bắt và ghi lại các lỗi không mong muốn xuất hiện trên dây chuyền lắp ráp. Điều này cho phép các vấn đề được phát hiện và giải quyết nhanh hơn
  • Python giúp dễ dàng viết hỗ trợ để có quyền truy cập vào quy trình đã chạy và thăm dò tương tác trạng thái của mã đang chạy ở đó. Điều này cho phép gỡ lỗi và giám sát từ xa hiệu quả trong quá trình phát triển
  • Thực tế là Python được diễn giải giúp có thể sửa đổi và kiểm tra mã ngay trên dây chuyền. Trước đây, một chuyến trở lại văn phòng là cần thiết để biên dịch lại mã đã thay đổi

Vì phần viết lại này đã hoàn thành và vì nó rất thành công nên chúng tôi cũng đã sử dụng Python trong nhiều dự án khác. Ví dụ: hệ thống thư viện triển khai các thành phần phần mềm cho tất cả các máy trạm của chúng tôi hiện được viết bằng Python. Giao diện với hệ thống điều khiển nhà máy (một hệ thống cũ) được bao bọc trong Python để cung cấp định tuyến động, một tính năng cho phép bỏ qua một số hoạt động sản xuất tùy thuộc vào hoàn cảnh. Python cũng được sử dụng để giám sát máy chủ, thực hiện sao lưu, bảo trì cơ sở dữ liệu và cho nhiều nhiệm vụ phân tích dữ liệu

Hôm nay, nhóm phần mềm máy trạm công cụ tham gia chuyển đổi hệ thống của chúng tôi từ OS/2 sang Linux. Phần hệ thống được viết bằng Python sẽ hầu như không yêu cầu thay đổi đối với cổng này. Cũng rất có khả năng các thành phần hệ thống khác hiện được viết bằng C++ sẽ được viết lại bằng Python vì tính di động của nó và vì hạn chế về thời gian hầu như ngăn cản bất kỳ khả năng nào khác

Phần kết luận

Nhóm phát triển Philips Fishkill TAP đã tích lũy được nhiều kinh nghiệm với Python và đã phát triển một lượng lớn mã với nó. Họ đã nhận thấy Python là một cách mạnh mẽ và hiệu quả để viết, gỡ lỗi và bảo trì các hệ thống phức tạp. Trong khi họ vẫn cởi mở với các công nghệ khác, Python tiếp tục cho phép họ nhanh chóng cung cấp các giải pháp trong lĩnh vực sản xuất chất bán dẫn đòi hỏi khắt khe

Giới thiệu về tác giả

Michael Muller là một nhà tư vấn phần mềm đã thiết kế và lập trình các hệ thống phần mềm mạng trong hơn 12 năm. Ngoài Python, anh ấy còn có nhiều kinh nghiệm về C/C++, Perl, bash, Rexx và Java. Anh ấy đã làm việc cho UPS, MCI, Verizon (khi họ còn là Nynex), IBM và Philips. Michael là một trong những thành viên sáng lập của Enduden Consulting Inc. (www. chịu đựng. com) thông qua đó anh ta có thể làm việc theo hợp đồng

Ngôn ngữ lập trình nào được sử dụng trong tự động hóa công nghiệp?

Python, C# và Java hiện là ba ngôn ngữ lập trình hàng đầu cho tự động hóa công nghiệp. Chúng có sự kết hợp phù hợp giữa các tính năng, khung và thư viện để ứng dụng nhanh chóng và hiệu quả.

Những ngành công nghiệp nào sử dụng Python?

Python được sử dụng bởi Intel, IBM, NASA, Pixar, Netflix, Facebook, JP Morgan Chase, Spotify và một số công ty lớn khác. It's one of the four main languages at Google, while Google's YouTube is largely written in Python. Same with Reddit, Pinterest, and Instagram.

Python có tốt cho kiểm thử tự động không?

Python là một trong những ngôn ngữ lập trình dành cho kiểm thử phần mềm tự động , dễ học và dễ sử dụng. Nó làm cho việc kiểm thử phần mềm tự động trở nên dễ dàng hơn, ngay cả đối với những người kiểm thử mới bắt đầu hành trình kiểm thử phần mềm.

Python được sử dụng như thế nào trong ngành sản xuất?

Việc sử dụng python trong ngành sản xuất là trong các ứng dụng chuẩn bị hình ảnh và tin học hóa trực quan . Hình ảnh ở khắp mọi nơi.